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.
null
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 ?
objectundefinedprimitivestring