扩展运算符 …的用法总遗失,特此记下铭记于心
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
let arr1 = [1,3,5,7,9]
let arr2 = [2,4,6,8,10]
console.log(...arr1) //展开一个数组
let arr3 = [...arr1,...arr2] //连接数组
console.log(...arr3)
// reduce求和; sum需要返回,...numbers可以有n个
function sum(...numbers) {
return numbers.reduce((preValue,currentVal)=>{
return preValue + currentVal
})
}
console.log(sum(1,2,3,4,5,))
let person = { name:'Tom',age : 18}
// console.log(...person) //展开运算符不能展开对象但能展开数组 (原生状态不行 But react+babel就可以允许用展开运算符去展开一个对象,并不是触发了对象复制)
let person2 = {...person} //新定义了一个对象
person.name = 'ZY'
console.log(person2)//还是"Tom",js所有拷贝都是浅拷贝,深拷贝只能自己写方法遍历
//怎么改呢?solution:解构后合并
let person3 = {...person,name:'YJJ',age:'22',address:'地球'}
console.log(person3)
</script>
</body>
</html>