es6中...运算符

104 阅读1分钟
展开数组:
let a = [1,2,3];
let b = [0, ...a, 4]; // [0,1,2,3,4]

展开对象
let obj = { a: 1, b: 2 };
let obj2 = { ...obj, c: 3 }; // { a:1, b:2, c:3 }
let obj3 = { ...obj, a: 3 }; // { a:3, b:2 }   相同的属性会覆盖掉
剩余操作符:
let a = [1,2,3];
let [b, ...c] = a;
b; // 1
c; // [2,3]
 
let a = [1,2,3];
let [b, ...[c,d,e]] = a;
b; // 1
c; // 2
d; // 3
e; // undefined
 
function test(a, ...rest){
  console.log(a); // 1
  console.log(rest); // [2,3]
}
 
test(1,2,3)