Je veux savoir quelle est la différence entre null
et undefined
en JavaScript.
Fournissez dans votre réponse le meilleur lien qui se rapporte à ce sujet en JavaScript.
Je veux savoir quelle est la différence entre null
et undefined
en JavaScript.
Fournissez dans votre réponse le meilleur lien qui se rapporte à ce sujet en JavaScript.
En JavaScript, "undefined" signifie qu'une variable a été déclarée mais qu'aucune valeur ne lui a encore été attribuée, par exemple :
var TestVar;
alert(TestVar); //shows undefined
alert(typeof TestVar); //shows undefined
null
est une valeur d'affectation. Elle peut être assignée à une variable comme représentation d'une absence de valeur :
var TestVar = null;
alert(TestVar); //shows null
alert(typeof TestVar); //shows object
D'après les exemples précédents, il est clair que undefined
et null
sont deux types distincts : undefined
est un type lui-même (non défini) alors que null
est un objet.
J'ai pris ça dans ici
La valeur indéfinie est une valeur primitive utilisée lorsqu'aucune valeur n'a été attribuée à une variable. n'a pas reçu de valeur.
La valeur nulle est une valeur primitive qui représente la référence nulle, vide, ou une référence inexistante.
Lorsque vous déclarez une variable par le biais de var et que vous ne lui donnez pas de valeur, elle aura la valeur indéfinie. En soi, si vous essayez de WScript.Echo() ou alert() cette valeur, vous ne verrez rien. Toutefois, si vous lui ajoutez une chaîne vide, elle apparaîtra soudainement :
var s;
WScript.Echo(s);
WScript.Echo("" + s);
Vous pouvez déclarer une variable, lui attribuer la valeur null, et le comportement est identique, sauf que vous verrez "null" s'afficher au lieu de "undefined". Il s'agit d'une petite différence.
Vous pouvez même comparer une variable indéfinie à null ou vice versa, et la condition sera vraie :
undefined == null
null == undefined
Ils sont toutefois considérés comme deux types différents. Alors qu'undefined est un type à part entière, null est considéré comme une valeur d'objet spéciale. Pour s'en convaincre, il suffit d'utiliser la fonction typeof() qui renvoie une chaîne de caractères représentant le type général d'une variable :
var a;
WScript.Echo(typeof(a));
var b = null;
WScript.Echo(typeof(b));
En exécutant le script ci-dessus, on obtient la sortie suivante :
undefined
object
Bien qu'ils soient de types différents, ils se comporteront de la même manière si vous essayez d'accéder à un membre de l'un ou l'autre, c'est-à-dire qu'ils lèveront une exception. Avec WSH, vous verrez le redoutable "'varname' is null or not an object" et ce, si vous avez de la chance (mais c'est un sujet pour un autre article).
Vous pouvez explicitement définir une variable comme étant indéfinie, mais je vous le déconseille fortement. Je recommande de ne définir que des variables nulles et de laisser la valeur indéfinie pour les choses que vous avez oublié de définir. En même temps, je vous encourage vraiment à toujours définir chaque variable. JavaScript a une chaîne de portée différente de celle des langages de style C, ce qui peut facilement dérouter même les programmeurs expérimentés, et définir les variables à null est la meilleure façon d'éviter les bogues basés sur cela.
Un autre cas où vous verrez apparaître le terme "indéfini" est l'utilisation de l'opérateur de suppression. Ceux d'entre nous qui viennent du monde C pourraient interpréter cette opération comme la destruction d'un objet, mais ce n'est pas le cas. Cette opération permet de supprimer un indice d'un tableau ou un membre d'un objet. Pour les tableaux, cela n'affecte pas la longueur, mais l'indice est désormais considéré comme indéfini.
var a = [ 'a', 'b', 'c' ];
delete a[1];
for (var i = 0; i < a.length; i++)
WScript.Echo((i+".) "+a[i]);
Le résultat du script ci-dessus est :
0.) a
1.) undefined
2.) c
Vous obtiendrez également un retour indéfini lorsque vous lirez un indice ou un membre qui n'a jamais existé.
La différence entre null et undefined est la suivante : JavaScript ne mettra jamais rien à null, c'est généralement ce que nous faisons. Bien que nous puissions définir des variables comme étant indéfinies, nous préférons null car ce n'est pas quelque chose qui est fait pour nous. Lorsque vous déboguez, cela signifie que tout ce qui est mis à null est de votre fait et non de celui de JavaScript. Au-delà de cela, ces deux valeurs spéciales sont presque équivalentes.
null est un mot clé spécial qui indique une absence de valeur.
pense à ça comme à une valeur, comme :
indéfini indique qu'aucune valeur n'a été attribuée à une variable, y compris la propriété null . Comme
var foo;
La variable vide définie est null
de type de données undefined
Tous deux représentent un valeur d'une variable sans valeur
ET null
ne représente pas un chaîne de caractères qui n'a pas de valeur - chaîne vide-
Comme
var a = '';
console.log(typeof a); // string
console.log(a == null); //false
console.log(a == undefined); // false
Maintenant si
var a;
console.log(a == null); //true
console.log(a == undefined); //true
MAIS
var a;
console.log(a === null); //false
console.log(a === undefined); // true
SO chacun a sa propre façon d'utiliser
indéfini l'utiliser pour comparer le type de données de la variable
null l'utiliser pour vider la valeur d'une variable
var a = 'javascript';
a = null ; // will change the type of variable "a" from string to object
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.