ES6扩展运算符(三点运算符)...的用法

1. 第一个叫做 展开运算符(spread operator),作用是和字面意思一样,就是把东西展开。可以用在array和object上都行。

1let a = [1,2,3]; 2let b = [0, ...a, 4]; // [0,1,2,3,4] 3 4let obj = { a: 1, b: 2 }; 5let obj2 = { ...obj, c: 3 }; // { a:1, b:2, c:3 } 6let obj3 = { ...obj, a: 3 }; // { a:3, b:2 }

2. 第二个 剩余操作符(rest operator),是解构的一种,意思就是把剩余的东西放到一个array里面赋值给它。

1let a = [1,2,3]; 2let [b, ...c] = a; 3b; // 1 4c; // [2,3] 5 6// 也可以 7let a = [1,2,3]; 8let [b, ...[c,d,e]] = a; 9b; // 1 10c; // 2 11d; // 3 12e; // undefined 13 14// 也可以 15function test(a, ...rest){ 16 console.log(a); // 1 17 console.log(rest); // [2,3] 18} 19test(1,2,3) 20 21let array = [1, 2, 3, 4, 5]; 22const [ x, y, ...z ] = array; 23// 其中z=[3, 4, 5],注意如果由于array的length不足以完成析构,则会导致z为[] 24对象: 25let obj = { name: 'zhangsan', age: 30, city: 'shenzhen' }; 26const {name, ...others} = obj; 27console.log(name); // 'zhangsan' 28console.log(others); // {age: 30, city: 'shenzhen'}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

thinkphp3.2.3模板渲染支持三元表达式

thinkphp3.2.3模板渲染支持三元表达式{$status?'正常':'错误'}{$info'status'?$info'msg':$info'error'}注意:三元运算符中暂时不支持点语法。如下:           <divclass"modalhidefade"id'myModa

ES6扩展运算符(三点运算符)...的用法 - HelloWorld