"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi la déclaration de variable de la console JavaScript génère-t-elle « Non défini » ?

Pourquoi la déclaration de variable de la console JavaScript génère-t-elle « Non défini » ?

Publié le 2024-11-02
Parcourir:993

Why Does JavaScript Console Variable Declaration Result in \

Pourquoi la déclaration de variable JavaScript dans la console entraîne un résultat « non défini »

Lors de la déclaration d'une variable dans la console JavaScript à l'aide de la syntaxe var a;, il imprime "indéfini". Ce comportement peut être surprenant et est souvent abordé dans les publications de Stack Overflow. Cependant, ces discussions ne parviennent pas à expliquer pleinement pourquoi cela se produit.

Le comportement de la console est le résultat direct de la manière dont JavaScript évalue les expressions. Lors de l'évaluation de l'instruction var a;, JavaScript la considère comme une expression à part entière et renvoie son résultat, qui est en effet « non défini ».

Il est plus curieux de savoir pourquoi la console affiche également « non défini » lors de la déclaration d'une variable. avec une valeur initiale, telle que var a = 3. Étonnamment, toutes les instructions de déclaration de variable en JavaScript (var et fonction) renvoient « non défini » s'il existe une autre instruction avec un résultat « réel ».

Par exemple :

> var a = 3;
undefined

> var a = 3; a = 4;
4

> var a = 3; a = 4; var a = 5; function f() {};
4

Ce comportement est enraciné dans l'instruction eval, qui, selon la spécification ECMAScript :

  • Renvoie « non défini » si la valeur d'achèvement du programme évalué est vide.

L'évaluation de l'instruction var a = 4 renvoie (normal, vide, vide), qui satisfait aux critères de retour de « non défini ».

Cependant, l'évaluation précise également que si La valeur d'achèvement du programme évalué n'est pas vide, alors la valeur de la dernière instruction est renvoyée. Dans le dernier exemple, a = 4 est la dernière instruction, donc sa valeur (4) est renvoyée.

En résumé, la console JavaScript affiche « non défini » pour les déclarations de variables, car ces déclarations renvoient « non défini » lorsqu'elles sont évaluées comme expressions. Ce comportement peut prêter à confusion, en particulier lors de l'attribution de valeurs initiales à des variables, mais il provient des mécanismes d'évaluation sous-jacents des expressions et instructions JavaScript.

Déclaration de sortie Cet article est reproduit le: 1729384697 S'il y a une contrefaçon, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3