含义
扩展运算符用…表示,它好比rest参数的逆运算,讲一个数组转为用逗号分隔的参数序列。
1 | console.log(...[1, 2, 3]) |
用途
1,函数调参,将一个数组,变为参数序列。
1 | function f(v, w, x, y, z) { } |
另外当 …args 作为函数参数时,它允许我们传递任意数量的参数,而不需要提前声明参数的数量
1 | function f(...args){ |
2,替换数组和apply相关方法
- 由于扩展运算符可以展开数组,所以不再需要apply方法,将数组转为函数的参数了。
- 取代apply用法一:
1 |
|
- 取代apply,应用Math.max方法用法二:
1 | // ES5 的写法 |
- 数组合并和添加尾部三:
1 | // ES5 |
3,与解构赋值结合(只能放在最后)
1 | const [first, ...rest] = [1, 2, 3, 4, 5]; |
4,将字符串转为真正的数组
1 | [...'hello'] |
5,实现了 Iterator 接口的对象
1 | var nodeList = document.querySelectorAll('div'); |
任何 Iterator 接口的对象,都可以用扩展运算符转为真正的数组。
1 | let arrayLike = { |
对于那些没有部署 Iterator 接口的类似数组的对象,扩展运算符就无法将其转为真正的数组,但是可以使用Array.from方法将arrayLike转为真正的数组。