zoukankan      html  css  js  c++  java
  • 变量作用域

    全局作用域

      在全局内使用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

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

  • 相关阅读:
    hihocoder-Week216-Gas Stations
    hihocoder-1740-替换函数
    hihocoder-1732-1-偏差排列
    hihocoder-Week200-Shorteniring Sequence
    hihocoder-1720-小数数字
    hihocoder-Week197-逆序单词
    hihocoder-Week195-奖券兑换
    hihocoder-Week184-满减优惠
    word ladder-leetcode
    数的划分
  • 原文地址:https://www.cnblogs.com/wangjingzhi/p/12113388.html
Copyright © 2011-2022 走看看