一、扩展运算符用三个点 (...) 来表示,可以将数组或对象里面的值展开。
const a = {a:1,b:2};
console.log({c:3,...a}); //{a:1,b:2,c:3}
二、应用
1、复制数组或对象
let a = [1, 2, 3];
let b = [...a];
console.log(a); // [1, 2, 3]
console.log(b); // [1, 2, 3]
console.log(a === b); // false
let a = {a: 1, b: 2}
let b = {...a}
console.log(a) // {a: 1, b: 2}
console.log(b) // {a: 1, b: 2}
console.log(a === b) // false
// 此时的操作相当于 let b = Object.assign({}, a)
此时的复制都是浅复制。
2、合并数组或对象
let arr1 = [
{
id: 1,
name: ''
},
{
id: 2,
name: ''
}
];
let arr2 = [
{
id: 1,
name: 'cw'
},
{
id: 2,
name: ''
}
];
let dataForm = {
...arr1,
...arr2
};
console.log(dataForm);
// 相当于 Object.assign(arr1, arr2)
结果:
const a = [1, 2, 2];
const b = [4, 5];
console.log([...a, ...b]) // [1, 2, 3, 4, 5]
// 相当于 a.concat(b)