JS中三个点(...)是什么鬼?ES6中的扩展运算符

#JS中三个点(…)是什么鬼?
yua

三个点(…)真名叫扩展运算符,
是在ES6中新增加的内容,它可以在函数调用/数组构造时,将数组表达式或者string在语法层面展开;
还可以在构造字面量对象时将对象表达式按照key-value的方式展开

有什么用?

它的用处很广泛,我们随处都可以看到复制用它

数组的复制

var arr1 = ['hello']
var arr2 =[...arr1]
arr2 // ['hello']

对象的复制


var obj1 = {name:'chuichui'}
var obj2 ={...arr}
ob12 //  {name:'chuichui'}

数组的合并

var arr1 = ['hello']
var arr2 =['chuichui']
var mergeArr = [...arr1,...arr2]
mergeArr  // ['hello','chuichui']

对象分合并

var obj1 = {name:'chuichui'}
var obj2 = {height:176}
var mergeObj = {...obj1,...obj2}
mergeObj // {name: "chuichui", height: 176}

字符转数组用它

var arr1 = [...'hello']
arr1 // ["h", "e", "l", "l", "o"]

和正常的函数相结合,灵活使用

function f(v,w,x,y,z){ }
var args = [2,3]
f(1,...args,4,...[5])

当我们想把数组中的元素迭代为函数参数时,用它!

function f(x,y,z){}
var args = [1,2,3]
f(...args)

文章来自:https://segmentfault.com/a/1190000021975579