概念
什么叫展开语法?在调用函数、构造数组、构造字符串时, 以…加集合的方式可以将表达式在语法层面展开;在构造字面量对象时, 将对象表达式按 key-value 的方式展开。
使用场景
- 函数调用
function sum(x, y) {
return x * y;
}
const numbers = [1, 2];
console.log(sum(...numbers));
// 2
sum(…numbers)相当于 sum.apply(null, numbers)
- 构造字面量数组
var arr1=[1,2];
var arr2=[...arr1,3,4];
console.log(arr2);//[1,2,3,4]
- 构造字面量字符串
var arr1=['a','b',...'cdef'];
console.log(arr1);//['a','b','c','d','e','f']
- 构造字面量对象(克隆对象)
var obj1={a:1};
var obj2={b:2};
var obj3={...obj1,...obj2,c:3};
console.log(obj3);//{a:1,b:2,c:3}