js中全局变量的一点小知识点

js中有三种方式定义全局变量

  • 在任何函数外面直接执行var语句,例如:var f="value";
  • 直接添加一个属性到全局变量上,在web浏览器中,全局对象名为window。例如:window.f="value";
  • 直接使用未经过声明的变量,以这种方式定义的全局变量成为隐式的全局变量。例如:f="value";

尽可能少使用全局变量:

其中一种方法就是将他们添加到同一个命名空间去:例如:

1 var My={};
2 My.name={
3         "first name":"first",
4         "last-name":"last"
5 };
6 My.work={
7      ……
8 };

以上代码中定义了唯一一个全局变量My,所有的全局变量都添加到My中。

js支持函数作用域,但不支持块作用域,为了减少块级作用域的使用,就在函数体顶部就声明函数中所有可能会用到的变量。

举例说明:

 1 <script type="text/javascript">
 2        var foo=function(){
 3            var a=1,b=2;
 4            var bar=function(){
 5                var b=3,c=4;
 6                a+=b+c;
 7                console.log(a);
 8                console.log(b);
 9                console.log(c);
10            };//在此处就已经是c=undefined
11            bar();
12            console.log(a);
13         console.log(b);
14            console.log(c);
15        }
16        foo();
17     </script>

以上代码执行结果为

原文地址:https://www.cnblogs.com/yangxiaoguai132/p/5223058.html