rest参数/spread扩展运算符(展开语法)
rest参数 与 spread 扩展运算符 在es6已经引入,不过es6中只针对数组,
在es9中为对象提供了想数组一样的 rest 参数和扩展运算符。
扩展运算符用于函数实参
扩展运算符可以将数组或对象转化为用逗号分隔的参数序列。
let ary = [1,2,3]
...ary // 1,2,3
console.log(...ary) // 1 2 3 这里的逗号被当做了参数分隔符
可用于合并数组
// 方法一
let ary1 = [1,2,3]
let ary2 = [4,5,6]
let ary3 = [...ary1, ...ary2]
console.log(ary3) // [1,2,3,4,5,6]
// 方法二
ary1.push(...ary2)
把类数组或可遍历对象转换为数组
let lis = document.querySelectorAll('li') // 类数组
let liArr = [...lis]
const obj = {
name:'spread扩展运算符',
age:19
}
const obj2 = {
price:999,
hibbies:['xxx']
}
let objh = {...obj,...obj2} //对象合并
console.log(objh ) // {name: "spread扩展运算符", age: 19, price: 999, hibbies: Array(1)}