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解釋程序會將其解釋為全局變量。