javascript函數參數
阿新 • • 發佈:2017-09-16
nbsp pan 保持 func log 事情 rip com 包含
js函數參數有顯式參數(Parameters)即形參和隱式參數(Arguments)實參
1、顯式參數(Parameters)即形參在函數定義時列出。
function functionName(parameter1, parameter2, parameter3){ //要執行的代碼 }
2、隱式參數(Arguments)即實參在函數調用時傳遞給函數的真正的值
function add(){ console.log(arguments[0], arguments[1], arguments[2]); }
參數的個數
(1)當實參比比函數聲明指定的形參個數少時,剩下的形參都將設置為undefined。
例:
function add(x, y){ console.log(x, y); } add(1);//1, undefined
(2)當實參比形參個數要多時,剩下的實參沒辦法直接獲得,可以通過arguments對象來訪問。在javascript中函數的參數在函數內部是用一個數組表示的。函數接收的始終都是這個數組,並不關心數組中包含哪些參數。而arguments是一個類數組對象,可以使用方括號語法來訪問它的每一個元素。
例:
function add(x, y){ console.log(arguments[0], arguments[1], arguments[2]); } add(1, 2, 3);//1 2 3
arguments對象的length屬性可以顯示實參的個數,函數的length屬性則顯示形參的個數。
例:
function add(x, y){ console.log(arguments.length);//3 } add(1, 2, 3); console.log(add.length);//2
形參可以提供便利,但不是必須的。
function add(){ console.log(arguments[0] + arguments[1]); } add(1, 2);//3
實參與形參同步
當形參與實參個數相同時,arguments對象的值和對應形參的值保持同步,但命名空間獨立。
例:
function test(num1, num2){ console.log(num1, arguments[0]);//1 1 arguments[0] = 2; console.log(num1, arguments[0]);//2 2 num1 = 10; console.log(num1, arguments[0]);//10 10 } test(1);
在嚴格模式下,arguments對象的值和形參都是獨立的。
例:
function test(num1, num2){ ‘use strict‘; console.log(num1, arguments[0]);//1 1 argument[0] = 2; comnsole.log(num1, arguments[0]);//1 2 num1 = 10; console.log(num1, arguments[0]);//10 2 } test(1);
當形參並沒有對應的實參時,arguments對象的值與形參的值並不對應。
例:
function test(num1, num2){ console.log(num1, arguments[0]);//undefined, undefined num1 = 10; arguments[0] = 5; console.log(num1, arguments[0]);//10, 5 } test();
對象參數
當一個函數包含超過3個形參時,要記住調用函數中實參的正確順序是一件很繁瑣的事情,可以通過值對的形式來傳入參數。
javascript函數參數