Maison > interface Web > js tutoriel > le corps du texte

Introduction aux variables JS et à leurs points de connaissance sur la portée

巴扎黑
Libérer: 2017-08-17 14:00:21
original
1515 Les gens l'ont consulté
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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal