• 变量作用域


    全局作用域

      在全局内使用var关键字定义变量,或者在函数内直接使用变量。全局变量在定义后,可以在函数内部访问得到。

    局部作用域

      在函数内部使用var关键字属于局部变量,在函数内部任何位置,只要是定义的局部变量如果在函数外部定义了相同名字的全局变量,在使用是要注意以下问题。

     1         var a =3;
     2 
     3         function fun(){
     4             console.log(a);
     5             var a =0;
     6         }
     7 
     8         fun();
     9 
    10 
    11        // 输出结果为undefined

      在全局变量和局部变量重名时,可以使用this关键字做区分

    1         var a = 3;
    2         function fun(){
    3             var a =15;
    4             console.log(a+this.a);
    5         }
    6         fun();
    7 
    8         //  输出结果18         

      在重复定义一个变量时,如果没有重新赋值,结果不会改变。

     1         var a =12;
     2         var a;
     3         console.log(a);
     4         
     5         var b = function(){
     6             console.log("bbb");
     7         }
     8         var b;
     9         b();
    10 
    11         // 输出结果为 12  bbb

      上面这个例子我不仅使用了变量作为测试,还使用了函数作为参考,因为函数的值在堆中存储,而函数名也存储在栈中,函数名指向地址,所以说函数名和变量名都是存储在栈中的。因此做这个测试也没有问题。

  • 相关阅读:
    最简单跳转,待反混爻的合集
    搜索引擎劫持代码
    Warning: Cannot modify header information
    editplus 正则删换行
    在全程Linux環境部署IBM Lotus Domino/Notes 8.5
    3.5-杂项②
    3.4-杂项①
    3.3-ISDN
    3.2-帧中继②
    3.2-帧中继①
  • 原文地址:https://www.cnblogs.com/wangjingzhi/p/12113388.html
Copyright © 2020-2023  润新知