1. Variables et leur portée : les variables sont divisées en « variables globales » et « variables locales ». Les « variables globales » sont déclarées en dehors de la fonction et peuvent être utilisées par toutes les fonctions, tandis que les « variables locales » sont déclarées à l'intérieur du corps de la fonction et ne peut être utilisé que dans Utilisé dans le corps de la fonction dans lequel la variable est définie.
(Remarque : il n'y a pas de mot-clé var lors de la déclaration des variables, mais les variables directement affectées sont des variables globales)
<script type="text/javascript">
function main() {
n = 10;//这里的n为全局变量,可以被外部直接使用
}
main();
alert(n);
</script>
2 Dans le corps de la fonction, les variables locales ont une priorité plus élevée que les variables globales.
<script type="text/javascript">
//网上看到的我认为很有代表性的一个例子,在函数体外部和内部都申明了相同名字的变量,变量的作用域问题,例子如下:
var n = 1;
function test() {
alert(n); //这里的a并不是全局变量,原因是函数体第四行申明了一个相同重名的局部变
//量a,如果把第四行a的申明注释掉,那么这里的a显示1,为全局变量。所以得
//出结论:全局变量a被局部变量a覆盖了。
//说明了JS函数在test()在执行前,函数体内的变量a都指向了局部变量,但本
//行输出的a在执行过程中还没有被赋值,所以显示undefined。
n = 2;
alert(n);
var n; //本行申明局部变量a
alert(n);
}
test();
alert(n);
</script>
D'après ma compréhension, la réponse finale de l'exemple ci-dessus devrait être : 1 2 2 1 ; mais la bonne réponse est : undefined 2 2 1 ; à l'extérieur et à l'intérieur du corps de la fonction Lorsqu'une variable est nommée, les variables locales remplacent les variables globales.
3. Comment lire les variables locales à l'intérieur du corps de la fonction depuis l'extérieur ?
De manière générale, seules les variables globales externes peuvent être obtenues directement de l'intérieur du corps de la fonction, mais les variables locales à l'intérieur du corps de la fonction ne peuvent pas être obtenues de l'extérieur. Cependant, cela peut être réalisé en définissant une autre fonction à l'intérieur du corps de la fonction pour renvoyer des variables locales, puis en appelant la fonction depuis l'extérieur.
<script type="text/javascript">
function f1() {
var n = 10;
function f2() {//在f1()内部再定义f2(),通过f2()访问f1()中的局部变量
alert(n);
}
return f2;//返回f1()局部变量n
}
var result = f1(); //在外部调用f1()函数,就能获取局部变量n的值
result(); // 10,即为n的值
</script>
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!