js变量的作用域

js全局变量和局部变量

1 <script>
2 var i = 'yuanjianhang';
3  function myloveName() {
4     alert(i);  
5     var  i = 'guanxi';
6 
7  }
8  myloveName();
9 </script>

运行结果 undefined

1 <script>
2 var i = 'yuanjianhang';
3  function myloveName() {
4    var  i = 'guanxi';
5     alert(i);  
6  }
7  myloveName();
8 </script>

运行结果  guanxi

代码分析  function内 加上var 代表局部变量,声明的局部变量名称和外部的全局变量名称相同,但是与外部的i是没有关系的,只是名称相同而已,所以alert(i)在,局部变量定义之前会输出undefined.

1 <script>
2 var i = 'yuanjianhang';
3  function myloveName() {
4     alert(i);  
5     i = 'guanxi';
6 
7  }
8  myloveName();
9 </script>

运行结果  yuanjianhang

1 <script>
2 var i = 'yuanjianhang';
3  function myloveName() {
4     
5     i = 'guanxi';
6     alert(i);  
7  }
8  myloveName();
9 </script>

运行结果  guanxi

代码分析 function内i没加var 代表全局变量,所以alert(i)在变量赋值之前,输出yuanjianhang

1 <script>
2  i = 'yuanjianhang';
3  function myloveName() {
4     a = 'guanxi';
5  }
6  myloveName();
7 alert(a);
8 //document.write(a);
9 </script>

运行结果  guanxi  代码分析a为全局变量

PS:全局变量可以不声明var 函数内变量必须声明var,在定义全局变量时加或不加var关键字没什么影响;但在定义局部变量时如果不加var关键字javascript解释程序会将其解释为全局变量。

猜你喜欢

转载自my.oschina.net/u/3234821/blog/1796573