Rest/Spread Properties Operator

ECMAScript:6

ES6 中新增了兩種對於陣列操作的特性:Spread OperatorRest Parameters,這兩個特性的語法共同點都是用 ... 三個點操作。

Spread Operator

Spread Operator 是將陣列展開成個別的值,較常用在組合陣列。

範例

let arr = [4, 5, 6];
let arr2 = [1, 2, 3, ...arr];
// [1, 2, 3, 4, 5, 6]
console.log(arr2);

// 1 2
console.log(...[1, 2]);

// Object
let obj = {
    name: 'Johnson',
    age: 40,
};

let obj2 = {
    account: 'jonhsonlu',
    ...obj
};

console.log(obj2);

Rest Parameters

Rest Parameters 主要是處理 function 中不確定的參數值,另外要注意的是,Rest Parameters 一定要擺在最後一個參數。

範例

function sum(...numbers) {
    let result = 0;
    numbers.forEach(function (number) {
        result += number;
    });
    return result;
}

console.log(sum(1));
console.log(sum(1, 2));
console.log(sum(1, 2, 3));
console.log(sum(1, 2, 3, 4));
console.log(sum(1, 2, 3, 4, 5));
Categories: JavaScript