null : signifie aucune valeur ;
undefined : représente une variable non déclarée,
ou une variable déclarée mais sans valeur affectée,
Ou une propriété d'objet qui n'existe pas.
L'opérateur == traite les deux comme égaux. Si vous souhaitez faire la distinction entre les deux, utilisez l'opérateur === ou typeof.
————————————-La ligne de démarcation de l'obscurité——————————————-
En JavaScript, null et indéfini prêtaient autrefois à confusion. L'analyse suivante vous aidera à le comprendre plus clairement (ou vous rendra plus confus) :
- null est un mot-clé ; undefined est une propriété de l'objet Global
- null est un objet (objet vide, sans aucune propriété ni méthode) ; une valeur de type indéfini. Essayez le code suivant :
document.writeln(typeof null); //return object
document.writeln(typeof undefined); //retourne undéfini- Dans le modèle objet, tous les objets sont des instances d'Object ou de ses sous-classes, à l'exception des objets nuls :
document.writeln(null instanceof Object); "Valeur égale (==)" à non définie, mais pas "valeur congruente (===)" à non définie :
document.writeln(null == non défini) //return true);
document.writeln(null === undefined); //return false- Les valeurs null et undefined peuvent être converties en false pendant le fonctionnement, mais ne sont pas égales à false :
document.writeln(!null, !undefined); retourner vrai, vrai
document.writeln(null==false); //retourne faux
document.writeln(undéfini==false); //retourne faux