es6之三个点(...)扩展运算符

我们看一个语法,你就知道es6对我们码农多友好,毕竟世界在进步

let arr=[1,2,3,4,54,56]
console.log(...arr)

  结果是?????

没错 ...这个运算符就是把这个数组扩展开了

也可以倒着用

function show(...a){
    console.log(a);
}
show(1,2,3,4,5)

  执行结果是???

没错变成数组了

好强大啊  那么我就想问问对于咱们的json数据行不行呢?

试试就知道

e 不行啊,看起来是不行啊 估计到es2020就行了

那么现在有一个需求,就是有一个函数将传入的数字进行排序

在之前是不是就是

function show(){
  let a =Array.prototype.slice.call(arguments);
   return  a.sort  
}

 现在呢

function show(...arr){
  return arr.sort()
}

  哎没有对比就没有伤害

还有这样操作

function show(a,b,c){
  console.log(a,b,c)
}
show(..[1,2,3])

  我们之前复制一个数组怎么做

let arr=[1,23,3]

let arr2=[...arr]

这些只是...作为扩展运算符,rest运算符也是...他的作用刚好相反

function show(a,...b){
   console.log(a,b)
}
show(1,2,3,4,45)

  打印出来的会是什么呢 a=1,b=[2,3,4,45]

当不知道有多少各参数的时候可以很愉快的这样使用

rest运算符配合解构使用:

var [a, ...rest] = [1, 2, 3, 4];
console.log(a);//1
console.log(rest);//[2, 3, 4]

  记住一点rest时候...一定放在后边,

有志者事竟成,破釜沉舟,百二秦关终属楚;  苦心人天不负,卧薪尝胆,三千越甲可吞吴。
原文地址:https://www.cnblogs.com/manIteresting/p/10274130.html