null et undefined

JavaScript permet d'indiquer l'absence d'une valeur de plusieurs façons. Cette page décrit les deux méthodes les plus courantes: les types de données null et undefined.

Le mot clé null représente une absence de valeur définie intentionnellement. null est une primitive, bien que l'opérateur typeof renvoie que null est un objet. Il s'agit d'une erreur qui a à partir de la première version de JavaScript, afin d'éviter de perturber le comportement attendu sur le Web.

typeof null
> object

Vous pouvez définir une variable comme null avec l'attente qu'elle reflète soit une valeur qui lui est attribuée point dans un script ou une valeur explicitement absente. Vous pouvez également attribuer le rôle null à une référence existante pour effacer une valeur précédente.

undefined

undefined est une valeur primitive attribuée à des variables qui viennent d'être déclarées, ou à la valeur résultante d'une opération ne renvoie pas de valeur significative. Cela peut se produire lorsque vous déclarez une fonction dans la console de développement d'un navigateur:

function myFunction() {}
> undefined

Une fonction renvoie explicitement undefined lorsque son instruction return ne renvoie aucune valeur.

(function() {
   
return;
}());
> undefined

Comparaison de null et undefined

Bien que undefined et null présentent des fonctionnalités communes, ils présentent à des fins différentes. Au sens le plus strict, null représente une valeur définis intentionnellement comme « vides », et undefined représente l'absence de valeur attribuée.

null et undefined sont faiblement égaux, mais pas strictement égaux. L'opérateur d'égalité lâche convertit les opérandes de différents types en booléens. ce qui fait de null et undefined tous deux false. L'opérateur d'égalité strict considère que les opérandes de différents types de données sont inégaux.

null == undefined
> true

null === undefined
> false

Contrairement au mot clé réservé null, undefined est une propriété de objet global. C'était une conception a pris cette décision dès le début du développement de JavaScript, en permettant aux anciens navigateurs écraser undefined complètement. Dans les navigateurs récents, il est toujours possible d'utiliser undefined en tant qu'identifiant dans des champs d'application non globaux, remplaçant sa valeur dans le champ d'application de cette déclaration. N'utilisez jamais undefined comme identifiant. Il peut provoquer des comportements inattendus et est susceptible de perturber les futurs responsables de votre codebase.

Testez vos connaissances

Que renvoie typeof null ?

primitive
undefined
string
object