Maison  >  Article  >  interface Web  >  Pourquoi la déclaration de variables JavaScript sur la console entraîne-t-elle un résultat « non défini » ?

Pourquoi la déclaration de variables JavaScript sur la console entraîne-t-elle un résultat « non défini » ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-20 08:43:30590parcourir

Why Does Declaring JavaScript Variables at the Console Result in

Pourquoi la sortie de la console est « non définie » lors de la déclaration de variables JavaScript sur la console ?

Lors de la déclaration d'une variable JavaScript sur la console à l'aide de var a ; , cela peut paraître déroutant lorsque la console affiche « non défini ». Cependant, ce comportement n'est pas simplement dû à l'absence d'un initialiseur dans l'instruction de déclaration.

Raison réelle : Déclaration d'évaluation

La raison derrière ce comportement réside dans le fonctionnement de l'instruction eval. Lors de l'évaluation d'une expression ou d'une instruction, l'instruction eval interprète son résultat. Cependant, si le résultat est une valeur, eval renvoie cette valeur. Sinon, si le résultat est vide (comme c'est le cas avec var a;), eval renvoie undefined.

Déclarations de variables comme des expressions

Fait intéressant, JavaScript traite la var un; déclaration comme une expression plutôt qu'une déclaration. Cela signifie qu'il renvoie un résultat, qui se trouve être vide. Par conséquent, lorsque var a; est traité dans la console, l'instruction eval interprète efficacement le résultat vide et renvoie undefined, qui est ensuite imprimé sur la console.

Déclarations ignorées

Dans certains cas, les déclarations de variables et de fonctions ultérieures peuvent être ignorées par la console s'il existe une instruction avec un résultat non vide. Par exemple :

var a = 3;
undefined

var a = 3; a = 4;
4

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

Cela est dû au fait que l'évaluation des SourceElements (y compris les déclarations) s'arrête une fois qu'un résultat non vide est rencontré, conduisant à l'impression du résultat de cette instruction au lieu des résultats vides du déclarations ultérieures.

Déclarations de fonction et expressions

Une autre différence subtile apparaît avec les déclarations de fonction et les expressions. Lorsqu'une fonction est déclarée à l'aide de la fonction f() {}, elle est traitée comme une instruction de déclaration de fonction, qui renvoie un résultat vide et conduit à l'impression « non défini » de la console. Cependant, lorsqu'une fonction est définie à l'aide de (function f() {}), elle est traitée comme une expression de fonction, qui s'évalue comme la fonction elle-même et est imprimée comme telle dans la console.

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