ES6 拓展运算符(...的这个运算符)和 rest运算符(也是...)

//拓展运算符

var a=[1,2,3]

var b=[11,22,33]

合并数组

a.push(b[0],b[1],b[2])  //输出[ 1, 2, 3, 11, 22, 33 ]

a.push(...b)  //输出[ 1, 2, 3, 11, 22, 33 ]

var c=[...a,...b]

console.log(c)  //输出 [ 1, 2, 3, 11, 22, 33 ]

//深度拷贝

var aa=a    //输出aa=>[1,2,3]

var bb=[...b]  //输出bb=>[11,22,33]

console.log(aa===a)  //输出 true

console.log(bb==b) //输出 false

字符串转数组

var str='hit'

var d=[...str]

console.log(d)  //输出[ 'h', 'i', 't' ]


rest运算符

就是把传的参数(...之后的)全部和到一起做一个数组,差不多是这个意思

var a=[1,2,3]

function f(...arg){    //这个形参中的 ... 就是rest函数的用法

    console.log(arg)

}

f(1,2,a)  //输出  [ 1, 2, [ 1, 2, 3 ] ]

 [ 1, 2, [ 1, 2, 3 ] ]中

1 对应传入的 1,

2 对应传入的 2,

[1,2,3] 对应传入的 a

//如果有多余的参数

function f(x,...arg){

    console.log(x)

    console.log(arg)  //注意 arg是个数组,正规的数组

}

f(1,2,a)  //输出下面的

1      //x

[ 2, [ 1, 2, 3 ] ]      // 2 和 a组成了一个数组

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容