JavaScript 変数の引数数
JavaScript の arguments
オブジェクトを介して可変数の引数を設定する原始的な方法があります。 これは配列のように動作しますが、length
プロパティのみを持ち、配列の他の組み込みプロパティとは連携しません。
ただし、関数の arguments
は、広い範囲で配列に追加することもできます。
関数で複数のパラメーターを指定する arguments
規則以外に、ES6 の更新である rest
パラメーターがあります。 より具体的には、構文を観察すると、オブジェクトは、いくつかの引数を定義する spread
演算子の方法を受け入れます。
さらに、引数のクラスターと一緒に個々の引数を設定することもできます。
私たちの例セットでは、両方の方法がどれほど効率的に問題を簡単にするかを調べます。 1つは arguments
オブジェクトに関するもので、もう 1つは rest
パラメーター規則に焦点を当てています。
arguments
オブジェクトを使用して、JavaScript で可変数のパラメーターを設定する
ここでは、関数 take
で 3
パラメータを取ります。 arguments
を使用する一般的な方法は、名前が付けられているとおりに直接指定することです。
しかし、arguments
オブジェクトの機能を使用すると、すべてのパラメーターを配列要素と同じように繰り返すことができます。 したがって、複数の引数を処理する方法が整理されます。
コードスニペット:
function take(a, b, c) {
for (var i = 0; i < arguments.length; i++) {
if (i == 1) {
arguments[i] = 'I am 2';
}
console.log(arguments[i]);
}
}
take(1, 2, 3);
出力:
ご覧のとおり、arguments
オブジェクトは、関数で言及されているパラメーターのインスタンスとして機能するだけでなく、元の値を変更することもできます。 また、arguments
オブジェクトの typeof
プロパティにより、パラメータの各タイプを識別できます。
Rest
パラメータを使用して JavaScript で複数の引数を設定する
Rest
パラメータは、arrow
関数を処理する ES6 の調整です。 この点で、自己境界を持つパラメーターを取ることができます。
以下の例の range1
および range2
引数に似ています。 そして、より大きな原因を考えたいという価値観のグループでもあります。
コードフェンスを確認してみましょう。
function rest(range1, range2, ...add) {
console.log(range1);
console.log(range2);
return add.reduce((pre, cur) => {
return pre + cur;
});
}
console.log(rest(1, 4, 1, 2, 3, 4));
出力:
この例では、range1
と range2
を開始境界と終了境界として設定し、...add
には range1
から range2
までのすべての値が含まれます。 この単純なタスクは、Rest
パラメーターがどのように機能するかを表すことです。