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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

以上代码执行结果为

技术分享

以上是关于js中全局变量的一点小知识点的主要内容,如果未能解决你的问题,请参考以下文章

js中全局变量应该怎么设置?

高性能JavaScript一点小知识

js面试题知识点全解(一作用域和闭包)

angularjs 设置全局变量的3种方法

angular js jquery中post请求的一点小区别

JS中constvar和let区别