扩展运算符(...)是Javascript ES6的一个新语法,也是开发者比较喜欢的一个语法,因为简洁高效,也被使用在很多应用中。
下边介绍5种常见的用法:
1.//复制数组
扩展操作符复制每个元素到一个完全新的数组中,两个数组不是引用关系
2.//合并多个数组
扩展运算符把多个数组按照顺序,展开各自中的元素,放入到一个新的数组中。
3.//复制对象
复制原始对象的每个key-value对给一个完全新的对象,同样不是引用关系。
4.//合并对象
抽取每个对象中的key-value 键值对,然后按照顺序分别赋值给一个新的对象。如果对象中存在同样的key,后边对象中的key值会覆盖前边的对象中key值。
5.//使用数组传递多个参数
let args = [1, 2, 3];
passArguments(...args);
扩展运算符接收一个数组参数,展开数组,把数组中每个元素分别赋值给对应位置上的函数参数。
错误的用法:
let obj1 = {a: 1, b: 2, c: 3};
let copy= [...obj1]
虽然扩展运算符都可以用在数组和对象上,但是不能搞错数据类型。数组使用方括号[..arr],对象使用大括号{...obj}