扩展操作符 … 是ES6中引入的,将可迭代对象展开到其单独的元素中,所谓的可迭代对象就是任何能用for of循环进行遍历的对象,例如:数组(数组常用方法)、字符串、Map (悟透Map)、Set (Set 如何使用?)、DOM节点等。
展示数组
let arr1 = [1, 3, 5, 7, 9]
let arr2 = [2, 4, 6, 8, 10]
console.log(...arr1); //展开一个数组
//输出:1 3 5 7 9
连接数组
let arr1 = [1, 3, 5, 7, 9]
let arr2 = [2, 4, 6, 8, 10]
let arr3 = [...arr1, ...arr2]//连接数组
//输出:(10) [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
数组求和
function sum(...numbers) {
return numbers.reduce((preValue, currentValue) => {
return preValue + currentValue
})
}
console.log(sum(1, 2, 3, 4));
//输出:10
拷贝赋值
//构造字面量对象时使用展开语法
let person = { name: 'tom', age: 18 }
let person2 = { ...person } //进行赋值
//console.log(...person); //报错,展开运算符不能展开对象
person.name = 'jerry'
//修改的是 person 对象
console.log(person2);
//{name: 'tom', age: 18}
console.log(person);
//{name: 'jerry', age: 18}
修改合并
let person = { name: 'tom', age: 18 }
//增加了一对key-value
let person3 = { ...person, name: 'jack', address: "地球" }
console.log(person3);
//输出:{name: 'jack', age: 18, address: '地球'}
\