Dans certains langages de programmation de type C, chaque morceau de code en accolades bouclées a sa propre portée, et les variables sont invisibles en dehors du segment de code qui les déclarent. Nous appelons la portée du bloc, et il n'y a pas de portée de bloc dans JavaScript. Au lieu de cela, JavaScript utilise la portée de la fonction: les variables sont définies dans le corps de fonction qui le déclare et tout corps de fonction imbriqué dans le corps de fonction. Dans le code suivant, I, J et K définis dans différents emplacements sont définis dans la même portée.
La copie de code est la suivante:
Texte de fonction (o)
{
var i = 0;
alerte (typeof o);
if (typeof o == "String")
{
var j = 0;
pour (var k = 0; k <10; k ++)
{
alerte (k); // sortie 0-9
}
alerte (k); // sortie 10
}
Alerte (J); // Sortie 0
}
La portée de la fonction de JavaScript signifie que toutes les variables déclarées à l'intérieur d'une fonction sont toujours visibles dans le corps de la fonction. Fait intéressant, cela signifie que les variables sont même disponibles avant qu'elles ne soient déclarées. Cette caractéristique de JavaScript est appelée de manière informelle. Regardez le code suivant
La copie de code est la suivante:
var global = "globas";
Fonction Globals ()
{
alerte (global); // non défini
var global = "Hello qdao";
alerte (global); // bonjour qdao
}
En raison de la nature de la portée de la fonction, les variables locales sont toujours définies dans tout le corps de fonction, ce qui signifie que les variables à l'intérieur du corps de fonction couvrent les variables globales du même nom. Malgré cela, les variables locales seront vraiment attribuées lorsque le programme exécutera l'instruction VAR. Par conséquent, le processus ci-dessus est équivalent à: déclarer les variables de la fonction "Avance" vers le haut du corps de la fonction, et laissant l'initialisation des variables de collègue en position d'origine:
La copie de code est la suivante:
var global = "globas";
Fonction Globals ()
{
var global;
alerte (global); // non défini
global = "Hello qdao";
alerte (global); // bonjour qdao
}