Histing de variables JavaScript : exploration de valeurs globales non définies
Cet article explore le comportement surprenant des variables globales en JavaScript, en particulier lorsqu'elles semblent avoir valeurs non définies dans les fonctions.
Le Cas :
Dans l'exemple ci-dessous, la valeur de la variable globale est initialisée à 10. Cependant, lorsqu'on y accède dans la fonction de test, elle enregistre une valeur non définie.
var value = 10; function test() { //A console.log(value); var value = 20; //B console.log(value); } test();
Sortie :
undefined 20
Levage en JavaScript:
Le Le phénomène derrière ce comportement est connu sous le nom de levage de variables JavaScript. Il impose que toutes les variables déclarées dans une fonction soient « hissées » ou déplacées vers le haut de la portée de la fonction, même si elles sont déclarées après leur utilisation.
Dans l'exemple ci-dessus, la variable de valeur est hissée au en haut de la fonction de test. Cependant, seule sa déclaration est levée, et non son affectation (initialisation). Ainsi, lorsque console.log(value) est appelé, il accède à la variable hissée mais non attribuée, ce qui donne un résultat indéfini.
Explication :
Ce comportement peut être compris à travers le code équivalent :
var value; // Global function test() { console.log(value); // Accessing the hoisted but undefined value value = 20; // Local assignment console.log(value); // Accessing the locally assigned value }
Remarque : Levage de Fonctions :
Le levage s'applique également aux déclarations de fonctions. Si une fonction est appelée avant d'être déclarée, elle s'exécutera quand même, même si son identifiant n'a pas encore été attribué.
Par exemple :
test("Won't work!"); // Error test = function(text) { alert(text); }; // Function assignment
Le premier appel à tester échoue car la fonction n’est pas déclarée à ce stade. Cependant, le deuxième appel réussit car la fonction est hissée et attribuée après le premier appel.
Conclusion :
Le mécanisme de levage de JavaScript peut conduire à des résultats inattendus, en particulier lors de l'accès variables globales dans les fonctions. Comprendre les nuances du levage est crucial pour écrire un code JavaScript robuste et sans erreur.
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!