1. ホーム
  2. javascript

ES2015 / ES6におけるスプレッドシンタックスとレストパラメータの比較

2023-09-27 11:36:19

質問

ES2015のspread構文とrestパラメータについて混乱しています。どなたか、適切な例でその違いを説明していただけませんか?

どのように解決するのですか?

spreadを使用する場合、1つの変数をより多くの変数に展開することになります。

var abc = ['a', 'b', 'c'];
var def = ['d', 'e', 'f'];
var alpha = [ ...abc, ...def ];
console.log(alpha)// alpha == ['a', 'b', 'c', 'd', 'e', 'f'];

rest argumentを使用する場合、関数の残りの引数をすべて1つの配列にまとめることになります。

function sum( first, ...others ) {
    for ( var i = 0; i < others.length; i++ )
        first += others[i];
    return first;
}
console.log(sum(1,2,3,4))// sum(1, 2, 3, 4) == 10;