...运算符一般用于数组和对象。
1.展开运算符
// 对于数组
let a = [1, 2, 3, 4];
let b = [0, ...a, 5]; // b = [0, 1, 2, 3, 4, 5]
// 对于对象
let obj = {a: 1, b: 2};
let obj1 = {...obj, c: 3}; // obj1 = {a: 1, b: 2, c: 3}
let obj2 = {...obj, b: 3}; // obj2 = {a: 1, b: 3}
2.剩余操作符
// case 1
let a = [1, 2, 3];
let [b, ...c] = a;
// 则 b = 1, c = [2, 3]
// case 2
ley a = [1, 2, 3];
let [b, ...[c, d, e]] = a;
// 则 b = 1, c = 2, d = 3, e = undefined
// case 3
function handle (a, ...rest) {
// 则 a = 1, rest = [2, 3]
}
handle(1, 2, 3)