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