こんにちは、水田です。
JavaScriptのarguments オブジェクトについてです。argumentsは関数内で利用可能な配列風オブジェクトで、関数に渡されたすべての引数を格納しています。関数が何個の引数を受け取るかにかかわらず、argumentsを使えば実際に渡された値を動的に扱うことができます。このオブジェクトは通常の関数宣言や関数式でのみ有効で、アロー関数では利用できません。argumentsは配列ではなく「配列風」なので、lengthプロパティで引数の数を取得したり、インデックスで各引数にアクセスできますが、mapやforEachなどの配列メソッドは使えません。ES6以降では残余引数が導入され、可読性や配列操作のしやすさから、argumentsの代わりにそちらを使うことが推奨されています。
function sum() {
let total = 0;
for (let i = 0; i < arguments.length; i++) {
total += arguments[i];
}
return total;
}
console.log(sum(1, 2, 3, 4, 5));
// 15