1
var set = new Set([1, 2, 3, 4, 4,4,4,4,2,2,2])
set=[...set]
2
let [head, ...tail] = [1, 2, 3, 4];
3
let [x, y, ...z] = ['a'];
1
var set = new Set([1, 2, 3, 4, 4,4,4,4,2,2,2])
set=[...set]
2
let [head, ...tail] = [1, 2, 3, 4];
3
let [x, y, ...z] = ['a'];
第一个你可以理解为建立了一个set对象,这个对象的作用是用来去重,[...set]则是将去重的结果返还给你。
第二三个是结构函数和省略(名字不记得)函数,左边的是变量匹配右边的。...X则代表省略的那部分都是他来拿。这样就把一个数组分解成变量了
...属于拓展运算符,用于对象或者数组的析构,比如:
数组:
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'}
第一个问题中,如果使用es5的var set1 = set,对set1做添加、删除操作,也会影响到set,使用ES6中的拓展运算符(...)就不会有这个问题。
8 回答4.1k 阅读✓ 已解决
6 回答2.5k 阅读✓ 已解决
5 回答2.3k 阅读✓ 已解决
5 回答5.8k 阅读✓ 已解决
4 回答2k 阅读✓ 已解决
3 回答2.1k 阅读
4 回答2.6k 阅读✓ 已解决
第一个叫做 展开运算符(spread operator),作用是和字面意思一样,就是把东西展开。可以用在
array
和object
上都行。比如:
第二个,第三个叫做 剩余操作符(rest operator),是解构的一种,意思就是把剩余的东西放到一个
array
里面赋值给它。一般只针对array
的解构,其他的没见过。。。比如: