Maison  >  Article  >  interface Web  >  Pourquoi « Non défini » est-il affiché pour les déclarations de variables dans la console JavaScript ?

Pourquoi « Non défini » est-il affiché pour les déclarations de variables dans la console JavaScript ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-20 08:42:02455parcourir

Why Is

Pourquoi « undéfini » est-il imprimé lors de la déclaration de variables dans la console JavaScript ?

Contrairement à d'autres environnements, la déclaration de variables dans la console à l'aide du Le mot clé "var" n'entraîne pas l'attribution d'une valeur à la variable. Au lieu de cela, la console affiche « undéfini ».

Comprendre l'expression

Contrairement à ce que cela peut paraître, "var a;" est une expression valide qui renvoie la valeur « indéfini ». En effet, déclarer une variable sans lui attribuer de valeur crée effectivement une variable non initialisée, qui a une valeur par défaut de « non définie ».

Le comportement d'Eval

Le La console JavaScript utilise la fonction « eval » pour évaluer les expressions. Selon la spécification eval, si une expression est évaluée à une valeur vide (telle qu'une variable non initialisée), « non défini » est renvoyé.

Impact sur les autres déclarations

Fait intéressant, ce comportement s'étend à d'autres déclarations « var » et fonctions. Si une instruction ultérieure a un résultat « réel », la console ignorera les déclarations « var » et de fonction et affichera le résultat de l'autre instruction. Par exemple :

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

Pourquoi l'exception avec les affectations

Dans le cas des affectations ("var a = 4;"), le comportement change car l'affectation L'instruction a un résultat non vide (la valeur attribuée). Ce résultat remplace le résultat vide de la déclaration "var" précédente.

Déclarations de fonction et expressions

Bien que les déclarations de fonction et les expressions utilisent le mot-clé "var", ils sont évalués différemment. Les déclarations de fonction (par exemple, "function f() {}") sont évaluées comme "indéfinies" (similaire aux déclarations de variables), tandis que les expressions de fonction (par exemple, "(function f() {})") sont évaluées comme la fonction elle-même.

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