JS_arguments

arguments: javascript中的函數定義並未指定函數形參的類型,函數調用也未對傳入的實參值作任何類型檢查。實際上,javascript函數調用甚至不檢查傳入形參的個數javascript

|- -同名形參: 嚴格模式下,出現同名形參會拋出語法錯誤 function add(x,x,x){}
|- -參數個數:
|- -實參比函數聲明指定的形參個數要少, 剩下的形參都將設置爲undefined值
     **須要設置默認值function add(x,y){y = y || 2} 【undefined、null、false、0、-0、''、NaN】
|- -實參比形參個數要多, 須要使用arguments對象 arguments[0],arguments[1]
|- -對象爲參數 function add(Obejct) {Object.age++}
|- -同步 嚴格模式下,arguments對象的值和形參的值是獨立的 function(num1){ num1,arguments[0] // 1, 1 arguments[0]=2 //1, 2 }
|- -callee arguments屬性, 指向擁有這個arguments對象的函數 【嚴格模式下,訪問這個屬性會拋出TypeError錯誤】
|- -caller
|- -函數的caller 調用當前函數的函數的引用 【嚴格模式下,訪問這個屬性會拋出TypeError錯誤】
|- -arguments對象的caller 無用
|- -函數重載 只能經過檢查傳入函數中參數的類型和數量並做出不一樣的反應,來模仿方法的重載
  if(arguments.length == 1){
    alert(arguments[0] + 10);
  }else if(arguments.length == 2){
    alert(arguments[0] + arguments[1]);
  }
|- -參數傳遞 按值傳遞(函數外部的值複製到函數內部的參數)
|- -基本類型值 複製給一個局部變量 (命名參數或arguments對象的一個元素)
|- -引用類型值 地址複製給一個變量, 變量發生改變影響函數外部的值
詳細教程 https://www.cnblogs.com/xiaohuochai/p/5706289.htmlhtml

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息