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!