Maison >interface Web >js tutoriel >Pourquoi la console JavaScript imprime-t-elle « Non défini » pour les déclarations de variables ?

Pourquoi la console JavaScript imprime-t-elle « Non défini » pour les déclarations de variables ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-20 08:39:02885parcourir

Why Does JavaScript Console Print

Pourquoi la déclaration de variable JavaScript sur la console imprime « Non défini »

Lors de la déclaration d'une variable à l'aide du mot-clé var sur la console, on pourrait être surpris de voir « non défini » imprimé en conséquence.

La cause

En JavaScript, le mot-clé var déclare une variable, mais sans lui attribuer explicitement de valeur, elle reste indéfinie. Lorsqu'une instruction de déclaration de variable est évaluée sur la console, le résultat est la valeur de l'expression évaluée, qui, dans ce cas, est la variable non définie.

L'exception

Cependant, c'est il convient de noter que lorsqu'une variable est déclarée avec une affectation, le résultat imprimé est la valeur attribuée. Par exemple, var a = 5 affichera 5.

La complexité sous-jacente

Le comportement de la console lors du traitement des déclarations var peut être attribué à la sémantique du modèle d'évaluation JavaScript. Selon la spécification ECMAScript :

  • L'instruction var renvoie une valeur d'achèvement de (normal, vide, vide).
  • Le résultat d'une expression évaluée dans le cadre d'un SourceElement est renvoyé sauf si ce résultat est (normal, vide, vide).

Dans le cas de var a;, puisqu'il n'y a pas d'affectation, la valeur d'achèvement est (normal, vide, vide). Par conséquent, le résultat de l'évaluation n'est pas défini.

La surprise cachée

Une autre observation intéressante est que les déclarations de fonction renvoient également (normal, vide, vide) et s'impriment donc de manière indéfinie lorsqu'elles sont évaluées sur la console. Cependant, lorsqu'une fonction est déclarée sous forme d'expression, telle que (function f() {}), le résultat est la fonction elle-même. Cette distinction met en évidence la différence subtile entre les déclarations de fonction et les expressions de fonction en JavaScript.

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!

Déclaration:
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