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

Posted rainybear

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6扩展运算符(三点运算符)...的用法相关的知识,希望对你有一定的参考价值。

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里面赋值给它。

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)
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‘}

 

以上是关于ES6扩展运算符(三点运算符)...的用法的主要内容,如果未能解决你的问题,请参考以下文章

es6三点运算符的用法

(...)ES6三点扩展运算符

ES6---扩展运算符和rest‘...’(三点运算符),在数组函数set/map等中的应用

es6三点运算符

ES6新特性:扩展运算符 三个点(...)基础学习

Babel 无法使用扩展运算符编译 ES6 对象克隆