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