javaScript作用域分析

<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.onload=function(){
		//alert(1);
		var oDiv=document.getElementById('div1');
		var oInps=document.getElementsByTagName('input');
		for(var i=0;i<oInps.length;i++){
			oInps[i].onclick=function(){
				//如果这样写,你这认i的值是多少
				alert(i);
				oInps[i].style.background='red';//Cannot read property 'style' of undefined
				//知道原因了吧
				//
			}
		}
	};
	


</script>
 //至此结束

 

你可能感兴趣的:(JavaScript,作用域)