Maison >interface Web >js tutoriel >Introduction à la différence entre null et non défini dans les compétences JavaScript_javascript
Il existe deux valeurs spéciales en JavaScript qui représentent l'absence d'informations : null et indéfini. Personnellement, je pense que la différence entre ces deux valeurs particulières peut être comprise dans la perspective suivante :
1.null représente un conteneur qui stocke des informations (telles qu'une variable à laquelle une valeur a déjà été attribuée), mais le contenu du conteneur est vide.
2. indéfini signifie qu'il n'y a pas de conteneur pour stocker les informations.
Le null en JavaScript n'est pas différent du null dans la plupart des autres langages de programmation. Il est essentiellement utilisé pour indiquer que la valeur de l'information est vide en JavaScript, l'expression renvoie un résultat non défini dans les situations suivantes :
1. Une variable à laquelle aucune valeur n’a été attribuée.
2. Accédez à une valeur de propriété qui n'existe pas dans un objet.
3. Accédez aux membres qui n'existent pas dans le tableau.
4. Appelez une fonction sans instruction return.
5. Appelez la fonction dont l'instruction return est vide ("return;").
En fait, comme Infinity et NaN, undefined est une variable globale en JavaScript et peut même se voir attribuer d'autres valeurs dans ECMAScript 3. ECMAScript 5 corrige cette erreur et rend les variables non définies en lecture seule.
Pour comparer entre null et indéfini, vous pouvez utiliser l'opérateur de congruence ===. Si vous utilisez l'opérateur == ordinaire, null et undefined sont équivalents :
Lors de la programmation, si vous devez attribuer une valeur nulle à une variable, vous utilisez généralement null au lieu de indéfini. La raison est :
1. indéfini est généralement considéré comme un manque d'informations au niveau du système et au niveau du rapport d'erreurs.
2. Null est généralement considéré comme une valeur d'information vide au niveau de la programmation et au niveau des opérations logiques.
Si la conversion de type est impliquée dans le programme, alors lors de la conversion en type numérique, les résultats de null et undefined sont différents :
1. Le résultat de la conversion d'undéfini en nombre est NaN.
2. Le résultat de la conversion de null en nombre est 0.
Il convient de mentionner que le résultat de la conversion de chaînes vides et de tableaux vides en nombres est également 0.
Pour savoir pourquoi deux valeurs représentant « aucun » sont conçues en JavaScript, veuillez vous référer au billet de blog de Ruan Yifeng.
Expérimenter
Dans le code expérimental suivant, les résultats de l'expression sont tous indéfinis :
fonction Échantillon(x){
ceci.x = x;
>
var s = new Sample();
console.log(s.x)
console.log(s.notExistVariable);
var n = [2,3,4];
console.log(n[8]);
test de fonction(){
//aucune valeur de retour pour cette fonction
>
console.log(test());
fonction test2(){
Retour ;
>
console.log(test2());