<script type=text/javascript> // 作用域分析分爲兩部分 //預解析 //執行代碼 //先上一個 var a=1; function f1(){ alert(a);//undefined var a=2; } f1(); alert(a);//1 //預解析 (全局變量) //全局a=undefined; 解析的時候只是將變量放到全局的倉庫裏 //函數f1=function f1(){} //解析完,執行語句 //a=1; //執行到函數,函數也有作用域,再來用同樣方法 //局部 var a=undefined; //執行代碼 //a=2; //所以結果嗎寫在代碼後面,再跑起來驗證下是正確的 </script>
<script type=text/javascript> /* //再來改改代碼 //再上一個 var a=1; function f1(){ alert(a);//1 a=2; } f1(); alert(a);//2 //對上面的例子注意一點就行,當局部中沒有這個變量會到父作用域中尋找,跑起來檢測 */ //再改改 var a=1; function f1(a){ alert(a);//undefined a=2; } f1(); alert(a);//1 //形參a 實際上是var a=undefined </script>
<script type=text/javascript> //再來一個難一點 window.οnlοad=function(){ //alert(1); var oDiv=document.getElementById('div1'); var oInps=document.getElementsByTagName('input'); for(var i=0;i<oInps.length;i++){ oInps[i].οnclick=function(){ //如果這樣寫,你這認i的值是多少 alert(i); oInps[i].style.background='red';//Cannot read property 'style' of undefined //知道原因了吧 // } } }; </script>
//至此結束