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

最新文章

  1. Effective c++读书笔记
  2. python 反射器
  3. WPF TabControl 隐藏标头
  4. Java开发中经典的小实例-(随机产生验证码)
  5. Array.prototype.indexOf
  6. afterTextChanged() callback being called without the text being actually changed
  7. linux死锁检测的一种思路
  8. 二叉树的JAVA实现-二叉树的增删改查CRUD
  9. LFS7.4编译笔记(3)
  10. JavaScript之聊天室设计摸拟
  11. java应用CPU占用率过高问题的分析
  12. winForm 打印预览
  13. [转载]C#缓存absoluteExpiration、slidingExpiration两个参数的疑惑
  14. JavaScript函数(二)
  15. OSQA的配置
  16. js获取当前的日期时间 格式“yyyy-MM-dd HH:MM:SS”
  17. kubernetes 安装备注
  18. 遍历HashMap的四种方式
  19. Navicat Premium 12.1.11.0安装与激活
  20. spark MLlib Classification and regression 学习

热门文章

  1. SpringBoot时代背景
  2. nacos Failed to obtain JDBC Connection 连接异常
  3. 利用postman进行api接口开发
  4. QT常用控件(三)——自定义控件封装
  5. 开发者如何快速搭建自己的电商App?
  6. 攻防世界逆向——game
  7. BUUCTF-[SUCTF 2019]CheckIn(.user.ini利用+exif_imagetype绕过)
  8. C++ 二进制文件 读 写文件
  9. lerna 常用命令
  10. SQL injection : UNION attacks