Maison >interface Web >js tutoriel >Pourquoi mes variables JavaScript globales ne sont-elles pas définies dans les fonctions ?

Pourquoi mes variables JavaScript globales ne sont-elles pas définies dans les fonctions ?

DDD
DDDoriginal
2024-12-04 22:53:12756parcourir

Why Are My Global JavaScript Variables Undefined Inside Functions?

Histing de variables JavaScript : découvrir le mystère des variables globales non définies

Lorsque vous travaillez avec des variables JavaScript, il est facile de rencontrer des comportements surprenants. Un tel cas est celui où une variable globale semble avoir une valeur non définie dans une certaine fonction.

Exemple :

Sortie :

Explication :

Le comportement découle du JavaScript Variable Hoisting, qui déplace automatiquement les déclarations de variables et de fonctions vers le haut de la portée actuelle. Cela signifie que :

  • La valeur de la variable globale est hissée en haut de la fonction de test.
  • Au point A, le programme imprime la valeur de la variable de valeur locale, qui n'a pas encore été initialisée.
  • Au point B, le programme imprime correctement la valeur de la variable locale nouvellement initialisée.

En effet, le code se comporte comme s'il était écrit comme :

Remarque : Les déclarations de fonctions également subir un levage. C'est pourquoi vous pouvez appeler une fonction avant qu'elle ne soit déclarée, contrairement aux affectations de variables.

Conclusion :

Le levage de variable doit être pris en compte lorsque vous travaillez avec des variables JavaScript. En comprenant ce comportement, les développeurs peuvent éviter les valeurs non définies inattendues dans leur code. De plus, des ressources telles que « JavaScript Scoping and Hoisting » de Ben Cherry peuvent fournir des informations supplémentaires sur cet aspect fondamental de 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