Il existe 2 valeurs spéciales en JavaScript qui représentent l'absence d'informations: nul et indéfinie. Je pense personnellement que la différence entre ces deux valeurs spéciales peut être comprise du point de vue suivant:
1.Null représente un conteneur qui stocke les informations (comme une variable qui a déjà été attribuée une valeur), mais le contenu du conteneur est vide.
2. Undefined signifie qu'il n'y a pas de conteneur utilisé pour stocker des informations.
Null in JavaScript n'est pas différent de Null dans la plupart des autres langages de programmation. Il est essentiellement utilisé pour indiquer que la valeur d'information est vide; En JavaScript, l'expression renvoie le résultat non défini dans les situations suivantes:
1. Une variable qui n'a jamais été attribuée de valeur.
2. Accédez à la valeur de propriété qui n'existe pas dans un objet.
3. Accès aux membres qui n'existent pas dans le tableau.
4. Appelez une fonction sans instruction de retour.
5. Appelez une fonction dont l'instruction RETOUR est vide ("return;").
En fait, comme Infinity et Nan, Undefined est une variable globale en JavaScript et peut même être attribuée d'autres valeurs dans ECMAScript 3. ECMAScript 5 a corrigé cette erreur et définir la variable non définie en lecture seule.
Pour les comparaisons entre NULL et UNDEFINED, l'opérateur congruent === peut être utilisé. Si l'opérateur normal == est utilisé, Null est équivalent à non défini:
La copie de code est la suivante:
Console.log (null == Undefined); // Vrai
console.log (null === Undefined); // false
Pendant le processus de programmation, si vous avez besoin d'attribuer une valeur nul à une variable, Null est généralement utilisé à la place non définie. La raison en est:
1. Undefined est généralement considéré comme un manque d'informations au niveau du système et du niveau de rapport d'erreur.
2.NULL est généralement considéré comme le niveau de programmation et la valeur d'information au niveau de fonctionnement logique est vide.
Si la conversion de type est impliquée dans le programme, les résultats de NULL et non définis lorsqu'ils sont convertis en type de nombre sont différents:
1. Le résultat d'une conversion non définie en nombre est nan.
2. Le résultat de la conversion nul en nombre est 0.
Il convient de mentionner que le résultat de la conversion d'une chaîne vide et d'un tableau vide en nombre est également de 0.
Quant aux raisons pour lesquelles deux valeurs qui représentent "non" sont conçues en JavaScript, vous pouvez vous référer au billet de blog de Ruan Yifeng.
expérience
Dans le code expérimental suivant, les résultats d'expression ne sont pas définis:
La copie de code est la suivante:
var a;
console.log (a);
Fonction Sample (x) {
this.x = x;
}
var s = nouveau échantillon ();
Console.log (SX)
console.log (s.NotexistVariable);
var n = [2,3,4];
console.log (n [8]);
fonction test () {
// aucune valeur de retour pour cette fonction
}
console.log (test ());
fonction test2 () {
retour;
}
console.log (test2 ());