JavaScriptにおいて、関数の引数の数を任意に変えたい場合や、関数宣言の時に、引数の個数を特定できない場合には、あらかじめ用意されている「argumentsオブジェクト」を利用すると便利です。

argumentsオブジェクトは関数の中でのみ利用できるオブジェクトです。


argumentsオブジェクト

下記の例では、Sums関数に引数の定義はありませんが、argumentsオブジェクトにデータは渡されています。 alertでは、33 と表示されます。

function Sums(){
  let sum = 0;
  for( i=0; i<arguments.length; i++ ){
    sum += arguments[i];
  }
  return sum;
}
window.alert( Sums(2,5,3,9,2,7,5) );  // => 33


可変長引数

argumentsオブジェクトを「…」の可変長引数に置き換え可能です。

function Sums(...arg){
  let sum = 0;
  for( i=0; i<arg.length; i++ ){
    sum += arg[i];
  }
  return sum;
}
window.alert( Sums(2,5,3,9,2,7,5) );  // => 33
2021/06/08