ES6からパラメータ定義に新たな機能が加わった。
Rest Parameters
function sumParameters(...parameters) {
let sum = 0;
for(let i = 0; i < parameters.length; i++) {
sum += parameters[i];
}
return sum;
}
sumParameters(1,2,3); // 6
...
をパラメータ名の前につけることで不特定数のパラメータを配列として関数内で使用することが可能。ただしrest parameterはパラメータ定義の最後尾でないといけない。
function sumParameters(first, ...parameters) {
// コード
}
sumParameters(1,2,3); // 5
function sumParameters(first, ...parameters, last) {
// コード
}
sumParameters(1,2,3); // SyntaxError
Default Parameters
他の言語同様、パラメータに既存値を設定することが可能。
function greet(name, greeting = 'Hello') {
message = greeting + ' ' + name;
console.log(message);
}
greet('John'); // Hello John
greet('George'); // Hello George
greet('Ringo'); // Hello Ringo
greet('Paul', 'Thanks'); // Thanks Paul