zoukankan      html  css  js  c++  java
  • ES6 延展操作符

    延展操作符(Spread operator)

    延展操作符 = ...可以在函数调用/数组构造时,将数组表达式或者string在语法层面展开,还可以在构造对象时,将对象表达式按key-value的方式展开。

     1 函数调用
     2 function(...iterableObj)
     3 
     4 数组构造或者字符串
     5 
     6 [...iterableObj,'4',...'hello',6]
     7 
     8 es2018下构造对象时,进行克隆或者属性拷贝
     9 
    10 let objClone={...obj}

    应用场景:

     1 function sum(x,y,x){
     2 
     3 return x+y+z
     4 
     5 }
     6 
     7 const numbers = [1,2,3]
     8 
     9 不使用延展操作符
    10 
    11 sum.apply(null, numbers)
    12 
    13 使用延展操作符
    14 
    15 sum(...numbers)
    16 
    17 或者在构造数组时
    18 
    19 如果没有展开语法,只能组合使用push,splice,concat,slice
    20 将已有数组元素变为新数组的一部分
    21 
    22 const people=['jan','tom']
    23 const person = ['ali',...people,'alliance','ketty']
    24 console.log(person)//Ali,jan,tom,alliance,ketty
    25 
    26 另外,还有一个例子
    27 
    28 var arr =[1,2,3]
    29 var arr2=[...arr]
    30 arr2.push(4)
    31 console.log(arr2)//1,2,3,4

    展开语法与Obj.assign()行为一致,都是执行浅拷贝,也就是只遍历一层,不会遍历父对象相关的数据

    1 var arr1=[0,1,2]
    2 var arr2=[3,4,5]
    3 var arr3=[...arr1,...arr2] 等同于var arr4 = arr1.concat(arr2)

    es2018中增加了对对象的支持

    1 var obj1 = {foo:1,foo2:2}
    2 var obj2={foo3:12,foo4:30}
    3 
    4 var clonedObj={...obj1}
    5 var mergedObj={...obj1,...obj2}



  • 相关阅读:
    Oracle误删除数据和表的恢复办法包括truncate
    SQL中简单函数介绍
    SQL中的null
    oracle数据库实例后台进程
    常用查询视图
    AIX 常用命令积累(未完待续)
    查询当前用户下的表/查询某一个用户的表
    查询统计运行和采控库里所有用户下的记录数大于5000万条的表
    使用orace数据库自带的sqldeveloper
    PL/SQL Developer
  • 原文地址:https://www.cnblogs.com/fangsmile/p/12397096.html
Copyright © 2011-2022 走看看