Maintenant, je vais vous apporter une compréhension complète du système de types JavaScript - non défini et nul. Permettez-moi de le partager avec vous maintenant et de le donner comme référence pour tout le monde.
Dans les mots précédents
Les langages de programmation généraux n'expriment que null, mais Brendan Eich, le concepteur de JavaScript, a conçu un indéfini. Cela augmente sans aucun doute la complexité du programme, mais il y a certaines raisons à cela. Cet article présentera en détail undefined et null en JavaScript
Raisons historiques : Lorsque JavaScript est né en 1995, initialement comme Java, seul null était défini comme valeur représentant « aucun ». Selon la tradition du langage C, null est conçu pour être automatiquement converti en 0
Cependant, le concepteur JavaScript Brendan Eich estime que cela n'est pas suffisant pour deux raisons. Premièrement, null est traité comme un objet, tout comme en Java. Cependant, les valeurs JavaScript sont divisées en deux catégories : les types primitifs et les types d'objets. Brendan Eich estime qu'il est préférable que la valeur représentant "aucun" ne soit pas un objet. Deuxièmement, la version initiale de JavaScript n'incluait pas de mécanisme de gestion des erreurs. Lorsqu'une incompatibilité de type de données se produit, le type est souvent automatiquement converti ou échoue silencieusement. Brendan Eich a estimé que si null était automatiquement converti en 0, il serait difficile de trouver des erreurs
Par conséquent, Brendan Eich en a conçu un autre non défini. Il le distingue ainsi : null est un objet qui représente "aucun" et vaut 0 lorsqu'il est converti en valeur numérique ; undefined est une valeur primitive qui représente "aucun" et vaut NaN
lorsqu'il est converti en valeur numérique ; . Cependant, actuellement null Ils sont fondamentalement synonymes de non défini, ce sont tous deux des types primitifs et il n'y a que quelques différences subtiles
undéfiniLe type Undéfini n'a qu'une seule valeur, qui est indéfinie. Lorsqu'une variable déclarée n'est pas initialisée, la valeur par défaut de la variable n'est pas définie. Donc généralement, undefined signifie que la variable n'a pas été initialisée
var test;//undefined console.log(test == undefined);//true var test = undefined;//undefined
Une seule opération peut être effectuée pour une variable qui n'a pas encore été déclarée Utilisez l'opérateur typeof pour détecter son type de données, mais cela provoquera une erreur en mode strict
typeof(test);//undefined
【Scène d'apparence】
【1】Une variable non affectée a été déclarée
【2】L'objet obtenu n'existe pas Attributs
【3】Le résultat de l'exécution d'une fonction sans valeur de retour
【4】Les paramètres de la fonction ne sont pas passés dans
【5】void(expression)
var i; console.log(i);//undefined var o = {}; console.log(o.p);//undefined function f(){}; console.log(f());//undefined function f(x){return x;} console.log(f());//undefined console.log(void(0));//undefined
[Conversion de type]
Boolean(undefined): false Number(undefined): NaN String(undefined): 'undefined'
null
Le type Null n'a qu'une seule valeur, est null. null est un mot-clé dans le langage JavaScript, qui représente une valeur spéciale, souvent utilisée pour décrire la « valeur nulle »
D'un point de vue logique, la valeur nulle représente un pointeur d'objet nul
[Note ] null est un pointeur d'objet vide, tandis que [] est un tableau vide, {} est un objet vide, les trois sont différents
console.log(typeof null);//'object'
Bien que null et undefined soient différents, ils représentent tous les deux "la vacance du value", et null représente "Valeur nulle", undefined signifie "indéfini". Les deux sont souvent interchangeables. L'opérateur d'égalité == considère les deux comme égaux
console.log(null == undefined);//true
En fait, comme undefined et null ne sont pas des types constructeur, ils n'ont pas de propriétés ni de méthodes pour accéder aux membres. ou les méthodes de ces deux valeurs généreront une erreur de type
[Conversion de type]
Boolean(null): false Number(null): 0 String(null): 'null'
Ce qui précède est ce que j'ai compilé pour tout le monde, je l'espère. vous sera utile à l’avenir. Tout le monde est utile.
Articles associés :
Expression de fonction Javascript (tutoriel image et texte)
Mécanisme d'héritage Javascript (réponse détaillée, image Tutoriel texte)
Javascript création de classes et d'objets (tutoriel graphique)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!