JavaScriptにおけるrest演算子
このレッスンは、いくつかの説明から始めましょう。
このセクションのこれまでのすべてのレッスンで、
私は演算子...についてすべてを話していませんでした。
実際には、この演算子はコード内での位置によって、 spread演算子またはrest演算子と呼ばれます。
すでにご存知のように、spread演算子が配列や文字列の前に置かれると、
それらを個々の値に分割します。Rest演算子は、
同じ...という構文を持っていますが、別の目的で使用されます。
今からその目的について説明します。 2つのパラメータを受け取る関数があるとします:
function func(a, b) {
console.log(a);
console.log(b);
}
関数に余分なパラメータを渡しても、エラーにならないことは すでにご存知でしょう:
func(1, 2, 3, 4, 5);
Rest演算子を使用すると、
すべての余分なパラメータを配列として取得できます。
そのためには、関数に(必ず最後に)もう1つのパラメータを追加し、
その前に3つのドットを書きます:
function func(a, b, ...rest) {
}
これら3つのドットがrest演算子であり、変数名は任意ですが、
通常これもrestと呼ぶのが一般的です。
余分なパラメータを指定して関数を呼び出し、
何がパラメータaとbに入り、
何が残りのrestに入るか見てみましょう:
func(1, 2, 3, 4, 5);
function func(a, b, ...rest) {
console.log(a); // 1を出力
console.log(b); // 2を出力
console.log(rest); // [3, 4, 5]を出力
}
余分なパラメータがない場合、変数restには
空の配列が記録されます:
func(1, 2);
function func(a, b, ...rest) {
console.log(a); // 1を出力
console.log(b); // 2を出力
console.log(rest); // []を出力
}
関数にはパラメータが全くなくても、restを追加することができます。
この場合、関数は任意の数のパラメータで呼び出すことができ、
それらすべてが配列restに入ります:
function func(...rest) {
console.log(rest);
}