概述
扩展运算符( spread )是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。
作为剩余参数
当函数参数个数不确定的时候,用剩余参数,每个函数最多只能声明一个剩余参数,而且必须放到形参末尾处
function fn(a,...item) {
console.log(a,item)
}
fn(1,35,64,35) // 1,[35, 64, 35]
fn(3,65,3,53,64,3,54,35) // 3,[65, 3, 53, 64, 3, 54, 35]
// 可以看到第一个参数赋值给a,剩下的参数不管有多少个都会赋值给item,item是个数组
作为解构赋值
console.log(...'asdjkdjsdf') // a s d j k d j s d f
// 总感觉解构就是遍历,也不知道自己理解的对不对
var arr = [34,23,53,32,29]
var newArr = [...arr,'a','b','c']
console.log(arr) // [34, 23, 53, 32, 29]
console.log(newArr) // [34, 23, 53, 32, 29, "a", "b", "c"]
var obj = {
name: '张三',
age: 18
}
var newObj = {
...obj,
name: '李四',
address: '城市'
}
console.log(obj) // {name: "张三", age: 18}
console.log(newObj) // {name: "李四", age: 18, address: "城市"}
使用场景
1、合并数组
var a = [1,2,3]
var b = [4,5,6]
var c = [...a,...b]
console.log(a) // [1, 2, 3]
console.log(b) // [4, 5, 6]
console.log(c) // [1, 2, 3, 4, 5, 6]
2、浅拷贝
var infoa = {
name: '张三',
detail: {
address: '上海市'
}
}
var infob = {
...infoa
}
infob.detail.address = '宝山'
console.log(infoa) // {name: "张三", detail: {address: "宝山"}}
console.log(infob) // {name: "张三", detail: {address: "宝山"}}
3、伪数组转数组
function add() {
return [...arguments].reduce((sum,item)=>sum+item)
}
console.log(add(2,3,4,12,3,4)) // 28
4、字符串转数组
var s = 'fdgdsf'
var sArr = [...s]
console.log(s) // fdgdsf
console.log(sArr) // ["f", "d", "g", "d", "s", "f"]
5、数组去重
var ages = [23,45,32,56,32,23,45]
var cages = [...new Set(ages)]
console.log(ages) // [23, 45, 32, 56, 32, 23, 45]
console.log(cages) // [23, 45, 32, 56]
最后
以上就是斯文画板为你收集整理的ES6 展开运算符的全部内容,希望文章能够帮你解决ES6 展开运算符所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复