arguments實參集合&參數&局部變量的關係

  1. arguments能讀能改,爲實參的集合。
  2. fn1(1,2,3);
    function fn1(){    //形參可不寫
    	
    	alert(arguments[arguments.length-1]);  //3
    
    }

    上面代碼中的arguments可能有點像數組,但是他並不是數組,卻可以使用數組中的某些方法。
  3. alert(sum(1,2,3));	//6
    alert(sum(1,2,3,4));	//10
    function sum(){		//當參數的個數不 確定的時候sum裏的形參不用再寫
    	var n =0;
    	for(var i =0;i<arguments.length;i++){
    		n+=arguments[i];
    	}
    	return n;
    }


  4. 下面是一個小例子,參數的最後一位是‘+’或‘-’,然後算出結果。
    alert(sum(1,2,3,'+'));	            //6
    alert(sum(10,2,3,60,'-'));	   //-55
    function sum(){
    	var n =0;
    			
    		if(arguments[arguments.length-1] = = = '+'){
    			for(var i =0;i<arguments.length-1;i++){
    				n+=arguments[i];}
    				return n;}
    		else{
    			for(var i =1,n=arguments[0];i<arguments.length-1;i++){
    				n-=arguments[i]}
    				return n;}
    }	

  5. 下面代碼中,參數a、arguments[0]、和局部變量a是一種東西。
  6. var a=1;
    function fn2(a){
    		 arguments[0] = 3;   
    		 alert(a);			//3
    		 var a= 2;
    		 alert(a);			//2
    }
    fn2(a);
    alert(a);					//1
    首先,js開始預解析:
    			a = undefind
    			fn1 = function(){......}
         	    然後開始逐行解讀代碼:
    			a =1;
    			fn1函數開始進行預解析:
    				a =undefind
    			然後開始逐行解讀函數代碼:
    				參數a = 1
    				參數a  == >arguments[0] = 3;   
    				alert(a)                                            //3
    				arguments[0]  == >局部變量a = 2;
    				alert(a)                                            //2
    	 alert(a)                                                                   //1






















發佈了37 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章