Rest parameters and spread operator
Rest parameters ...
...// 不會出現錯誤,只有前面 2 個參數會相加,多餘的參數不會有作用
function sum(a, b) {
return a + b;
}
alert( sum(1, 2, 3, 4, 5) );
// rest 參數把剩餘所有參數放到 array 中
function sumAll(...args) { // args is the name for the array
let sum = 0;
for (let arg of args) sum += arg;
return sum;
}
alert( sumAll(1) ); // 1
alert( sumAll(1, 2) ); // 3
alert( sumAll(1, 2, 3) ); // 6
function showName(firstName, lastName, ...titles) {
alert( firstName + ' ' + lastName ); // Julius Caesar
// the rest go into titles array
// i.e. titles = ["Consul", "Imperator"]
alert( titles[0] ); // Consul
alert( titles[1] ); // Imperator
alert( titles.length ); // 2
}
showName("Julius", "Caesar", "Consul", "Imperator");
// rest 必須是最後一個參數
function f(arg1, ...rest, arg2) { // arg2 after ...rest ?!
// error
}The “arguments” variable
Spread operator
Last updated
Was this helpful?