如何将JavaScript变量作用域改写为长尾关键词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计708个文字,预计阅读时间需要3分钟。
代码段如下:
javascriptscriptvar i=2;function test() { var i=1;}test();alert(i); // // 值为2
scriptvar i=2;function test() { i=1;}test();alert(i); // // 值为1
这是不是您所要求的简化版本?
先上两段代码
<script> var i = 2; function test(){ var i = 1; } test(); alert(i);//值为2 </script>
<script> var i = 2; function test(){ i = 1; } test(); alert(i);//值为1 </script>
是不是觉得很奇怪,我当时也是这样搞晕了,代码没问题啊,咋回事,最后找了找,原来是var作怪。我自己的理解是,var是用来申明变量的,在方法体里面申明的就是局部变量,局部变量自然不会影响到全局变量的值了。所以第一段代码alert出来的是2;第二段由于没有用var关键词申明,所以默认用的是全局的i的值,在全局里面改变全局变量的值,所以全局变量i的值被修改成1了。
本文共计708个文字,预计阅读时间需要3分钟。
代码段如下:
javascriptscriptvar i=2;function test() { var i=1;}test();alert(i); // // 值为2
scriptvar i=2;function test() { i=1;}test();alert(i); // // 值为1
这是不是您所要求的简化版本?
先上两段代码
<script> var i = 2; function test(){ var i = 1; } test(); alert(i);//值为2 </script>
<script> var i = 2; function test(){ i = 1; } test(); alert(i);//值为1 </script>
是不是觉得很奇怪,我当时也是这样搞晕了,代码没问题啊,咋回事,最后找了找,原来是var作怪。我自己的理解是,var是用来申明变量的,在方法体里面申明的就是局部变量,局部变量自然不会影响到全局变量的值了。所以第一段代码alert出来的是2;第二段由于没有用var关键词申明,所以默认用的是全局的i的值,在全局里面改变全局变量的值,所以全局变量i的值被修改成1了。

