记录一下ES6扩展运算符(三点运算符)...的用法

来源:互联网 发布:淘宝刷cf英雄级武器吗 编辑:程序博客网 时间:2024/06/05 04:12

该记录源于segmentfaul网友的评论,特意感谢!

 ...运算符用于操作数组,有两种层面

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

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

2. 第二个,第三个叫做 剩余操作符(rest operator),是解构的一种,意思就是把剩余的东西放到一个array里面赋值给它。一般只针对array的解构,其他的没见过。。。
比如:

let a = [1,2,3];let [b, ...c] = a;b; // 1c; // [2,3]// 也可以let a = [1,2,3];let [b, ...[c,d,e]] = a;b; // 1c; // 2d; // 3e; // undefined// 也可以function test(a, ...rest){  console.log(a); // 1  console.log(rest); // [2,3]}test(1,2,3)


还有类似的

let array = [1, 2, 3, 4, 5];const { x, y, ...z } = array;// 其中z=[3, 4, 5],注意如果由于array的length不足以完成析构,则会导致z为[]对象:let obj = { name: 'zhangsan', age: 30, city: 'shenzhen' };const {name, ...others} = obj;console.log(name); // 'zhangsan'console.log(others); // {age: 30, city: 'shenzhen'}

将继续补充,继续学习

原创粉丝点击