JavaScript Null et indéfini


Exemple

Les différences entre null et undefined

égalité abstraite de part de partage null et undefined == mais pas d'égalité stricte === ,

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

Ils représentent des choses légèrement différentes:

  • undefined représente l' absence d'une valeur , par exemple avant la création d'une propriété identifiant / objet ou dans la période entre la création du paramètre identifiant / fonction et son premier ensemble, le cas échéant.
  • null représente l' absence intentionnelle d'une valeur pour un identifiant ou une propriété déjà créé.

Ce sont différents types de syntaxe:

  • undefined est une propriété de l'objet global , généralement immuable dans la portée globale. Cela signifie que partout où vous pouvez définir un identifiant autre que dans l'espace de nommage global pourrait cacher undefined de ce champ (bien que les choses peuvent encore être undefined )
  • null est un littéral de mot , donc sa signification ne peut jamais être modifiée et tenter de le faire va générer une erreur .

Les similitudes entre null et undefined

null et undefined sont tous deux falsifiés.

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

Ni null ni undefined égal à false (voir cette question ).

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

Utiliser undefined

  • Si la portée actuelle ne peut pas être approuvée, utilisez quelque chose qui est considéré comme indéfini , par exemple void 0; .
  • Si undefined est ombré par une autre valeur, il est tout aussi mauvais que Shadow Array ou Number .
  • Évitez de définir quelque chose comme undefined . Si vous souhaitez supprimer une barre de propriété d'un objet foo , delete foo.bar; au lieu.
  • L'identifiant de test d'existence foo contre undefined pourrait typeof foo une erreur de référence , mais utiliser typeof foo contre "undefined" .