<script type="text/javascript"> /** * 做用域:在嵌套的函數中變量的尋址是由裏向外的,當尋址到變量的值就不會繼續在往外找。找到window對象時無此屬性會報undefined錯誤 */ function out(){ var d=5; function into(){ var e=5; var d=2 alert(d+e); } into(); } out(); // 輸出爲7 </script>
+----------------------------------------------------------------------------------------------------------------------------- <script type="text/javascript"> /** * var 關鍵字:只是變量的定義而已,並不表明做用域,未加關鍵字var的變量只至關於賦值操做. */ alert(window.e); // undefined alert(window.d); // undefined function t(){ e=5; var d=6 } t(); alert(window.e); // 5 alert(window.d); // undefined </script>+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<script type="text/javascript"> /** * 代碼的運行方式是自上而下從左至右,從函數裏到外 */ var str1='global'; function t(){ alert(str1); alert(str2); str2='aa'; } t(); output: global; undefined; </script>