JavaScript – Rest Parameters & Spread Operator
阿新 • • 發佈:2022-05-06
介紹
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