1. 程式人生 > 其它 >JavaScript – Rest Parameters & Spread Operator

JavaScript – Rest Parameters & Spread Operator

介紹

Rest 和 Spread 的共同點是語法都是 ... (點點點), 但它們的用處是不一樣的哦.

 

Rest Parameters

參考: 阮一峰 – rest 引數

rest parameters 是用來取代傳統的 arguments 物件的.

old school:

function method(v1, v2, v3) {
  console.log(arguments[0]);
  console.log(arguments[1]);
  console.log(arguments[2]);
  console.log(arguments[3]); // 4
  console.log(arguments.length); //
4 console.log(Array.isArray(arguments)); // false // arguments is iterable for (const arg of arguments) { console.log('arg', arg); } } method(1, 2, 3, 4);

modern:

function method(...args) {
  console.log(Array.isArray(args)); // true
}
method(1, 2, 3, 4);

除了它是 array 以外, 其它都和 arguments 一樣, 

less arguments

如果只是和 arguments 一樣功能, 那沒有什麼價值. rest parameters 的強出是可以做 lessArgs

function method(firstArg, ...lessArgs) {
  console.log(firstArg); // 1
  console.log(lessArgs); // [2, 3, 4]
}
method(1, 2, 3, 4);

是不是很方便? 

注: rest parameters 只能放到最後, 下面這樣放中間是不行的哦

 

 

Spread Operator