rest operator and spread operator
一、rest operator
var sum = function (...arr) { var result = 0; for (var i = 0; i < arr.length; i++) { result += arr[i]; } return result; }; console.log(sum(1, 2, 3));
其結果為
說明:
當這「...」符號用在 function parameter 時,
則表示 function 接受來自 function argument 的不定長參數,
白話一點,你可以把帶有「...」符號的變數,視為一陣列去操作他。
二、spread operator
var number = [1, 2, 3]; console.log(...number); console.log(Math.max(...number));
其結果為
說明:
如上例,number 是一個陣列,相等於 ...number,
雖然是相同的東西,但這令人感覺作用不大啊,多此一舉?
他可以用在 Math.max() 方法,Math.max() 方法只接受不定長參數,而不接受陣列帶入;
可利用 ...number 變數可以將陣列合進 ...number 變數,然後再餵給Math.max() 方法。