JavaScript Nullo e indefinito


Esempio

Le differenze tra null e undefined

null e undefined condividi l'uguaglianza astratta == ma non l'uguaglianza rigorosa === ,

null == undefined   // true
null === undefined  // false

Rappresentano cose leggermente diverse:

  • undefined rappresenta l' assenza di un valore , come prima che sia stata creata una proprietà identificatore / oggetto o nel periodo tra la creazione del parametro identificatore / funzione e il primo set, se presente.
  • null rappresenta l' assenza intenzionale di un valore per un identificatore o una proprietà che è già stata creata.

Sono diversi tipi di sintassi:

  • undefined è una proprietà dell'oggetto globale , solitamente immutabile nell'ambito globale. Ciò significa che ovunque è possibile definire un identificatore diverso da quello nello spazio dei nomi globale potrebbe nascondersi undefined da tale ambito (anche se le cose possono ancora essere undefined )
  • null è una parola letterale , quindi il suo significato non può mai essere cambiato e il tentativo di farlo genererà un errore .

Le somiglianze tra null e undefined

null e undefined sono entrambi falsi.

if (null) console.log("won't be logged");
if (undefined) console.log("won't be logged");

nullundefined uguale a false (vedi questa domanda ).

false == undefined   // false
false == null        // false
false === undefined  // false
false === null       // false

Uso undefined

  • Se non è possibile attendersi l'ambito corrente, utilizzare qualcosa che non è definito , ad esempio void 0; .
  • Se undefined è ombreggiato da un altro valore, è altrettanto brutto quanto lo shadowing Array o Number .
  • Evita di impostare qualcosa di undefined . Se si desidera rimuovere una barra delle proprietà da un oggetto foo , delete foo.bar; anziché.
  • L'identificatore di test dell'esistenza foo contro undefined potrebbe generare un errore di riferimento , utilizzare invece typeof foo contro "undefined" .