Přejít k navigační liště

Zdroják » Zprávičky » JavaScriptové perličky: [] není []!

JavaScriptové perličky: [] není []!

Zprávičky JavaScript, Různé

Na serveru WTFJS upozornil @remi na jednu zajímavost ohledně vytváření neinicializovaných proměnných v JavaScriptu.

var a = new Number;
a == 0 // true
var a = new String;
a == "" // true
var a = new Object;
a == {} // false
var a = new Array;
a == [] // false

Pokud implicitně nezadáme hodnotu pro číslo, je dosazena nula (0), pro řetězec prázdný řetězec („“). Poněkud matoucí to může být při použití zápisu JSON:

var a = {};
a == {} // false
var a = [];
a == [] // false

Komentáře

Odebírat
Upozornit na
guest
5 Komentářů
Nejstarší
Nejnovější Nejvíce hlasů
mmmmario

A bude platit toto:
var a = []
a == null // true?
var a = {}
a == null // true?

pas

Ne.
Stačí si uvědomit, že [] je jenom zkrácený zápis pro new Array() a {} je zkrácený zápis pro new Object() a bude vše jasné.

pas

To ale není o neinicializo­vaných proměnných – ve všech těch příkladech inicializované jsou. :) Je to o vnímání {} jako atomické hodnoty, namísto instance třídy. Jakmile by to bylo zapsáno ekvivalentním new Object() == new Object(), už by to každého trklo. Jinak bych nepovažoval za smrtelný hřích používat neinicializované proměnné – pokud daný jazyk, resp. implementace, jasně zaručuje, jaké jsou výchozí hodnoty pro každý typ.

DevelX

Nič proti, ale čísla a reťazce sú v JS atomické hodnoty, pri porovnaní == sa porovnávajú ich hodnoty.
Oproti tomu objekt aj pole je inštanciou triedy objektu / pola, a teda sa pri použití == porovná rovnosť referencie na inštanciu. Nechápem, čo je na tom zarážajúce, takto by to predsa aj malo byť.
Pri každom použití [] alebo {} sa zo zjavných príčin vytvára nové pole / objekt.

juraj

Snáď ešte zmienim NaN == NaN – tiež false.

WP2Shell: Kritická hrozba pro samotné jádro WordPressu. Útočníci mohou získat kontrolu nad webem

Zranitelnost ve WordPressu není žádná novinka. Kdo provozuje weby postavené na této platformě, ví, že bezpečnostní záplaty chodí prakticky pořád. O to větší pozornost by měla vzbudit chyba, u které nic z toho neplatí. A přesně takový je případ zranitelnosti, která dostala přezdívku wp2shell. potřeb. Zranitelný kontaktní formulář, děravý e-shopový plugin, opomenutá kontrola oprávnění v nějaké obskurní rozšiřující knihovně – to je denní chleba každého, kdo sleduje bezpečnostní feedy. Zpráva „nová chyba ve WordPress pluginu“ má tak nízkou informační hodnotu, že ji většina lidí přejde bez mrknutí oka.

Mýtus jedné aplikace: proč PWA nenahradí vývoj pro každou platformu

PWA mohou webu přidat ikonu na ploše, fungování bez připojení, notifikace a některé systémové funkce. Nejsou ale cestou k jednomu klientu pro všechny platformy. Vyplatí se tam, kde se lidé k webu vracejí a ocení okamžitý vstup z odkazu. Jakmile aplikace musí spolehlivě běžet na pozadí nebo fungovat stejně na každém zařízení, bývá vhodnější nativní řešení.

Anthropic vydává Claude Opus 5

AI
Komentáře: 0
Anthropic vydal Claude Opus 5 — model, který se má výkonem blížit špičkovému Fable 5 za poloviční cenu a míří hlavně na agentické kódování. Cena zůstává na 5/25 USD za milion tokenů, přibývají API novinky jako mid-conversation tool changes a automatické fallbacky.