如下例子:
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'];
第一个叫做 展开运算符
(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 }
第二个,第三个叫做 剩余操作符
(rest operator),是解构的一种,意思就是把剩余的东西放到一个array里面赋值给它。一般只针对array的解构,其他的没见过。。。 比如:
let a = [1,2,3]; let [b, ...c] = a; b; // 1 c; // [2,3] // 也可以 let a = [1,2,3]; let [b, ...[c,d,e]] = a; b; // 1 c; // 2 d; // 3 e; // undefined // 也可以 function test(a, ...rest){ console.log(a); // 1 console.log(rest); // [2,3] } test(1,2,3)