展开运算符的应用场景

合并数组

const arr1 = [1, 2, 3]
const arr2 = [4, 5, 6]
const arr3 = [...arr1, ...arr2]
console.log(arr3) // [1, 2, 3, 4, 5, 6]

 

替代 apply

const arr = [1, 2, 3]
function func(arg1, arg2, arg3){
    console.log(arg1 + arg2 + arg3) // 6
}
func(...arr)
// 替代 func.apply(null, arr) 用法
​
const arr1 = [1, 2, 3]
const arr2 = [4, 5, 6]
arr1.push(...arr2)
console.log(arr1) // [1, 2, 3, 4, 5, 6]
// 替代 Array.prototype.push.apply(arr1, arr2) 用法

 

解构赋值

const arr1 = [1, 2, 3, 4, 5, 6]
const [el1, el2, ...arr2] = arr1
console.log(el1) // 1
console.log(el2) // 2
console.log(arr2) // [3, 4, 5, 6]
// 展开运算符必须放在最后一位

 

字符串拆分成数组

const str = 'String'
const arr = [...str]
console.log(arr) // ["S", "t", "r", "i", "n", "g"]
​
// 等同于
const str = 'String'
const arr = str.split('')
console.log(arr) // ["S", "t", "r", "i", "n", "g"]

 

伪数组转换成数组

const divs = document.querySelectorAll('div')
const newDivs = [...divs]
console.log(newDivs)
​
var map = new Map([[1,11],[2,22],[3,33]]);
console.log([...map.keys()]); // [1,2,3]

 

浅拷贝

let a = [1, 2, 3]
let b = [...a]
​
let a = {name: 'zhangsan'}
let b = {...a}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值