js变量的做用域

js全局变量和局部变量javascript

 

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

 

运行结果 undefinedhtml

 

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

 

运行结果  guanxijava

代码分析  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>

 

运行结果  yuanjianhanghtm

 

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

 

运行结果  guanxiblog

代码分析 function内i没加var 表明全局变量,因此alert(i)在变量赋值以前,输出yuanjianhangip

 

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为全局变量ci

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

相关文章
相关标签/搜索