1、数组解构,可以设置默认值

'use strict';
let [x, y = 'b'] = ['a'];
//控制台输出b
console.log(y);

2、对象解构

'use strict';
let { foo, bar } = { foo: "aaa", bar: "bbb" };
// 控制台输出aaa
console.log(foo);
// 控制台输出bbb
console.log(bar);

对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。

对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而不是前者。

3、字符串的解构

'use strict';
let [a,b,c] = 'mfg';
// 控制台输出m
console.log(a);
// 控制台输出f
console.log(b);

4、函数参数解构

'use strict';
function add([x, y]){
return x + y;
}
console.log(add([1, 2]));

5、解构的用途

(1)从函数返回多个值

'use strict';
function example() {
return [1, 2, 3];
}
let [a, b, c] = example();
//控制台输出1
console.log(a)

(2)提取 JSON 数据

'use strict';
let jsonData = {
id: 42,
status: "OK",
data: [867, 5309]
}; let { id, status, data: number } = jsonData; console.log(id, status, number);

最新文章

  1. 谷歌浏览器下载地址 chrome最新版本 百度云地址
  2. PHP常用的文件操作函数集锦
  3. MyEclipse10修改servlet模版
  4. maven操作
  5. 再次讲解js中的回收机制是怎么一回事。
  6. E/AndroidRuntime(1636): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.***.app.wx.MainActivity} : android.view.InflateException: Binary XML file line #51 :
  7. JSON Viewer
  8. visual studio 未将对象引用设置到对象的实例
  9. Centos6.5下一个Ceph存储集群结构
  10. 一个想法照进现实-《IT连》创业项目:万事开头难
  11. 不可不知的socket和TCP连接过程
  12. modbus学习笔记——帧
  13. Visual Studio 2017 和 Visual Assist X 番茄助手的安装教程
  14. java == 与 equals
  15. Java容器解析系列(5) AbstractSequentialList LinkedList 详解
  16. System.currentTimeMillis() uptimeMillis elapsedRealtime 区别
  17. juypter安装使用
  18. java编写一个汽车类,有属性:品牌、型号、排量、速度,有方法:启动、加速、转弯、刹车、息火
  19. Mac OS配置Android SDK环境变量(当不存在 .bash_profile 文件的时候)
  20. XtraEditors一、总体介绍

热门文章

  1. SpringBoot整合Quartz作为调度中心完整实用例子
  2. Sqli-labs less 3
  3. poj 2739(筛法求素数)
  4. 20162303实验三 敏捷开发与XP实践-1
  5. redis节点管理-节点的移除
  6. AS3.0 效率优化
  7. python3 str和bytes之间转换
  8. linux下安装oracle需要的配置
  9. RenderMonkey 练习 第三天 【OpenGL renderToTexture】
  10. http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.html