展开运算符
📌把 数组 / 对象 外层的字面量去掉,如:
{}和[],去掉字面量的部分,就是展开运算符的结果
1.合并数组
const arr1 = [1, 2, 3, 6, 5]
const arr2 = ['a','b','c']
const arr = [...arr1, ...arr2]
console.log(arr)
2.拆分对象
const user1 = {
name: 'pink',
age: 18
}
const user2 = {
sex: '男'
}
const user = { ...user1, ...user2 }
console.log(user)
3.字符串转数组
const str = '键盘敲烂,工资过万'
const arr = [...str]
console.log(arr)
4.浅拷贝对象
const oldUser = {
uname: 'pink',
age: 18
}
// 浅拷贝
const newUser = { ...oldUser }
console.log(newUser)
console.log(oldUser)
console.log(oldUser === newUser)
剩余参数
📌抛去已知的形参,获取未知的形参,结果以逗号分割
使用场景: 当函数的形参是动态的时候,无法判断出形参的个数,就可以使用剩余参数,从而拿到完整的参数
function fn(num1, num2, ...nums) {
console.log(...nums)
}
fn(1, 2, 3, 5, 6, 9)
展开运算符和剩余参数的区别
-
分隔字符相同:
- 结果都是以
,分隔
- 结果都是以
-
应用位置不同:
- 函数形参括号内的
...--> 剩余参数 - 函数形参括号外的
...--> 展开运算符
- 函数形参括号内的
-
获取的结果不同:
-
剩余参数获取的是剩余的形参
-
展开运算符获取的是所有值
-