展开运算符是ES6中添加的内容,在需要多个参数/变量/元素的位置展开表达式,它用三个点
...
表示,展开运算符有2种用法
-
作为展开运算符
展开运算符很常见,像是数组、set的展开都能通过它来实现
对于
数组操作
,可以实现数组的拼接,也可给push和unshift方法传参
还可将类数组转换为数组
对于
对象操作
,可实现对象的浅拷贝以及对象合并(合并的时候如果有相同的属性,就会覆盖)
对于
字符串和函数
,字符串会拆分开,函数可以接收
...
来传参
对于
Map和Set
,都可以展开
-
配合剩余参数使用
JavaScript中的剩余参数,类似于Java中的不定参数,配合扩展运算符使用
在此之前想访问所有传入的参数需要使用
arguments
,这个参数是一个类数组,如果要使用的话,还需要通过扩展符来转换成数组使用,不过使用
...rest
之后,这个
rest
就是设定好参数以外的所有传入参数,直接是个数组,使用更方便。
这里需要注意,剩余参数需要放在所有参数的最后一个,如果放在中间就会报错。
参考文章
-
JavaScript展开操作符(Spread operator)详解
-
Javascript 中的 ...(展开运算符)