[javascript] 函式參數,特殊關鍵字 arguments及展開運算子(…)的使用

在 javascript 中,對於函式參數其實有一個關鍵字 arguments


我們嘗試印出函式中的特殊關鍵字 arguments

另外,javascript 中是可以允許傳送與函式參數定義不同的數量的參數

function test(a, b, c)
{
    console.log("a:"+a);
    console.log("b:"+b);
    console.log("c:"+c);
    console.log(arguments);
}
test("apple", "orange", "banana");
// a:apple
// b:orange
// c:banana
// ["apple", "ornage", "banana"]
test("apple");
// a:apple
// b:undefined
// c:undefined
// ["apple"]
test("apple", "orange", "banana", "grape");
// a:apple
// b:orange
// c:banana
// ["apple", "orange", "banana", "grape"]

從以上這段程式碼我們可以看到幾個特性

  • 在 javascript 中,我們可以傳多於或少於宣告時的參數數量。
  • 在 javascript 中,參數的指派順序為由左至右。
  • 在傳入少於宣告時的參數數量時,其他參數將被初始為 undefined。
  • 在傳入多於宣告時的參數數量時,我們可以透過 arguments 存取到參數。

 

接下來,我們要介紹展開運算子(…)的使用,也就是可以將剛剛的程式碼傳入過多的參數狀況時,將這些多於的參數存入一個變數。

舉程式碼的例子來說:

function test(a, b, ...other)
{
    console.log("a:"+a);
    console.log("b:"+b);
    console.log(other);
}
test("apple", "banana", "grape", "lemon");
// a:apple
// b:banana
// other:["grape", "lemon"]

參考資料:

https://pjchender.blogspot.tw/2016/04/javascriptparameterargumentsspread.html

Leave a Reply

Your email address will not be published. Required fields are marked *