可変長引数の関数を定義する
/**
* 可変長引数
*/
//ES6 before ----------------------------------------------------------------------
//argumentsオブジェクトは、Arrayオブジェクトのように見えるがそうではない。
function sum() {
var result = 0;
// 与えられた引数を順番に取り出し、順に加算処理。
for (var i = 0, len = arguments.length; i < len; i++) {
var tmp = arguments[i];
if (typeof tmp !== 'number') {//引数が数字ではない場合、エラー表示する。
throw new Error('引数が数値ではない:' + tmp);
}
result += tmp;
}
return result;
}
try {
document.getElementById('hoge1').textContent='before : ' + sum(1, 3, 5, 7, 9); // 結果:25
} catch(e) {
window.alert(e.message);
}
//ES6 after ----------------------------------------------------------------------
//仮引数の前に「...」(ピリオド)を付与することで、可変長引数となり、引数を配列として受け取ることができる。
function sum(...nums) {
let result = 0;
for (let num of nums) {
if (typeof num !== 'number') {
throw new Error('指定値が数値ではない:' + num);
}
result += num;
}
return result;
}
try {
document.getElementById('hoge2').textContent='after : ' + sum(1, 3, 5, 7, 9); // 結果:25
} catch(e) {
window.alert(e.message);
}
See the Pen 可変長引数 ES2015 before & after by nwstcode (@nwst) on CodePen.