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
?
undefined
string
primitive
object