<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>
//至此结束