Maison > interface Web > js tutoriel > Explication détaillée de la compréhension de undefined et null en JavaScript

Explication détaillée de la compréhension de undefined et null en JavaScript

亚连
Libérer: 2018-05-19 16:37:17
original
1877 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

【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
Copier après la connexion

[Conversion de type]

Boolean(undefined):  false
Number(undefined):  NaN
String(undefined):  'undefined'
Copier après la connexion

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'
Copier après la connexion

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
Copier après la connexion

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'
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal