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

原文地址:https://www.cnblogs.com/RainyBear/p/9522594.html

时间: 2024-08-29 18:43:53

ES6扩展运算符(三点运算符)...的用法的相关文章

ES6扩展运算符(三点运算符)“...”用法和对象拷贝

es6拷贝数组对象有以下方法: 方法一: Object.assign() // 对象浅拷贝,obj1复制给obj2,这种方法要把obj2设置为{},不能const obj2 = ""; const obj1 = {a: 1}; const obj2 = {}; Object.assign( obj2, obj1) 方法二 :ES6扩展运算符(...) //对象浅拷贝,obj1复制给obj2 const obj1 = {a: 1}; const obj2 = {...obj1}; 方法三

es6 扩展运算符 三个点(...)

1  含义 扩展运算符( spread )是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[1, 2, 3]) // 1 2 3 console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5 [...document.querySelectorAll('div')] // [<div>, <div>, <div>] 该运算符主要用于函数调用. function push(

es6~扩展运算符(未完)

扩展运算符 含义 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[1, 2, 3]) //1 2 3 console.log(1, ...[2, 3, 4], 5) //1 2 3 4 5 [...document.querySelectorAll('div')] //[<div>, <div>, <div>] 该运算符主要用于函数调用. function push(ar

2. es6扩展运算符

1. es扩展运算符 扩展运算符将一个数组转为用逗号分隔的参数序列: <script> console.log(...[1, 2, 3]) //1 2 3 // (1)将一个数组,变为参数序列 let add = (x, y) => x + y; let numbers = [1, 2]; console.log(add(...numbers))//3 // (2)使用扩展运算符展开数组代替apply方法,将数组转为函数的参数 // ES5 取数组最大值 console.log(Math

ES6系列_4之扩展运算符和rest运算符

运算符可以很好的为我们解决参数和对象数组未知情况下的编程,让我们的代码更健壮和简洁. 运算符有两种:对象扩展运算符与rest运算符. 1.对象扩展( spread)运算符(...) (1)解决参数个数问题 以前我们编程是传递的参数一般是确定,否则将会报错或者异常,如下: function test(a,b,c,d) { console.log(a) console.log(b) console.log(c) console.log(d) console.log(e)//e is not defi

java第三天(运算符、键盘录入和控制语句)

1:运算符(掌握) (1)算术运算符 A:+,-,*,/,%,++,-- B:+的用法 a:加法 b:正号 c:字符串连接符 C:/和%的区别 数据做除法操作的时候,/取得是商,%取得是余数 D:++和--的用法 a:他们的作用是自增或者自减 b:使用 **单独使用 放在操作数据的前面和后面效果一样. a++或者++a效果一样. **参与操作使用 放在操作数的前面:先自增或者自减,再参与操作 int a = 10; int b = ++a; 放在操作数的后面:先参与操作,再自增或者自减 int

Java基础学习第三天——运算符与流程控制语句

文档版本 开发工具 测试平台 工程名字 日期 作者 备注 V1.0 2016.02.22 lutianfei none 运算符 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 三目运算符 算术运算符 * 注:整数相除只能得到整数,若想得到小数,只需将任意一个数据变为浮点数. * eg:System.out.println(x*1.0/y); ++,– : 放在操作数前面,先自增或者自减,然后再参与运算. 放在操作数后面,先参与运算,再自增或者自减. 练习题1: int a=10,b=1

JavaSE学习笔记(三)——运算符与控制语句

一.   Java中的运算符 在Java中,按功能划分主要包含一下运算符. 1.算术运算符 2.关系运算符 3.布尔运算符 4.赋值运算符 5.字符串连接运算符 6.条件运算符 7.其他运算符,如:instanceof,new 1.1           算术运算符 算术运算符: 算术运算符 描述 + 相加 - 相减 * 相乘 / 返回整除的值 % 返回余数 ++ 自加一,如果++出现在变量的前面,先自加一在进行其他运算 如果++出现在变量的后面,先进行其他运算在自加一 -- 自减一,原理同上

第三章 运算符和表达式

课时20 认识运算符 1.运算符(操作符) 定义:是一个用于运算的符号,作用于一个或多个操作数. 操作数:参与运算的数据 2.运算符分类(A,B两类) A.按操作数的数量 一元(目)运算符 → 作用于一个操作数 二元(目)运算符 → 作用于两个操作数 (理解:一个运算符,例如:1+1=2   ''+'表示运算符,1和1是操作数) 三元(目)运算符 → 作用于三个操作数 代码表示的意思: double类型转化为int类型再转换为string类型 Double a=1.2; String b =(i

前置后置单目运算符重载函数返回值用法

Clock& Clock::operator ++() //前置单目运算符重载函数{Second++;if(Second>=60){Second=Second-60;Minute++;if(Minute>=60){Minute=Minute-60;Hour++;Hour=Hour%24;}}return *this;}//后置单目运算符重载Clock Clock::operator ++(int) //注意形参表中的整型参数{Clock old=*this;++(*this);retu