JavaScriptにおけるスプレッド演算子とレストパラメータの違い


スプレッド演算子は、配列やオブジェクトを展開して個別の要素に分解するために使用されます。これにより、配列やオブジェクトを簡単に結合したり、コピーしたりすることができます。以下にスプレッド演算子の例を示します。

const array1 = [1, 2, 3];
const array2 = [4, 5, 6];
// 配列を結合する
const combinedArray = [...array1, ...array2];
console.log(combinedArray); // [1, 2, 3, 4, 5, 6]
// 配列をコピーする
const copiedArray = [...array1];
console.log(copiedArray); // [1, 2, 3]

一方、レストパラメータは、関数の引数として可変長の値を受け取るために使用されます。レストパラメータは、関数に渡された引数の値を配列としてまとめて受け取ることができます。以下にレストパラメータの例を示します。

function sum(...numbers) {
  return numbers.reduce((total, num) => total + num, 0);
}
console.log(sum(1, 2, 3)); // 6
console.log(sum(4, 5, 6, 7)); // 22

上記の例では、sum関数が可変長の引数を受け取るためにレストパラメータを使用しています。関数に渡された引数は、numbersという配列にまとめられ、それをreduceメソッドを使って合計値を計算しています。

つまり、スプレッド演算子は配列やオブジェクトを展開するために使われ、レストパラメータは可変長の引数を受け取るために使われます。正しく使い分けることで、より柔軟なコードを書くことができます。

以上がJavaScriptにおけるスプレッド演算子とレストパラメータの違いについての解説です。