(1)交换变量的值

let x = 1;
let y = 2;[x, y] = [y, x];

上面代码交换变量x和y的值,这样的写法不仅简洁,而且易读,语义非常清晰

(2)从函数返回多个值
函数只能返回一个值,如果要返回多个值,只能将它们放在数组或对象里返回。有了解构赋值,取出这些值就非常方便。

// 返回一个数组function example() {return [1, 2, 3];
}
let [a, b, c] = example();// 返回一个对象function example() {return {foo: 1,bar: 2};
}
let { foo, bar } = example();

(3)函数参数的定义
解构赋值可以方便地将一组参数与变量名对应起来

// 参数是一组有次序的值
function f([x, y, z]) { ... }
f([1, 2, 3]);// 参数是一组无次序的值
function f({x, y, z}) { ... }
f({z: 3, y: 2, x: 1});

(4)提取 JSON 数据
解构赋值对提取 JSON 对象中的数据,尤其有用

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

上面代码可以快速提取 JSON 数据的值。

(5)函数参数的默认值

jQuery.ajax = function (url, {async = true,beforeSend = function () {},cache = true,complete = function () {},crossDomain = false,global = true,// ... more config
} = {}) {// ... do stuff
};

指定参数的默认值,就避免了在函数体内部再写var foo = config.foo || ‘default foo’;这样的语句。

(6)遍历 Map 结构
任何部署了 Iterator 接口的对象,都可以用for…of循环遍历。Map 结构原生支持 Iterator 接口,配合变量的解构赋值,获取键名和键值就非常方便

const map = new Map();
map.set('first', 'hello');
map.set('second', 'world');for (let [key, value] of map) {console.log(key + " is " + value);
}
// first is hello
// second is world

如果只想获取键名,或者只想获取键值,可以写成下面这样

// 获取键名
for (let [key] of map) {// ...
}// 获取键值
for (let [,value] of map) {// ...
}

(7)输入模块的指定方法
加载模块时,往往需要指定输入哪些方法。解构赋值使得输入语句非常清晰。

const { SourceMapConsumer, SourceNode } = require("source-map");

ES6结构赋值的用途相关推荐

  1. ES6结构赋值,一篇就够

    ES6结构赋值 1.基础铺垫(传统赋值取值方式) 2.结构赋值 3.字符串结构 4.函数参数自动结构 1.基础铺垫(传统赋值取值方式) var a = [1,2] var person = {name ...

  2. es6结构赋值--数组

    2019独角兽企业重金招聘Python工程师标准>>> /*** 数组 的解构赋值*/ {let [foo, [[bar], baz]] = [1, [[2], 3]]console ...

  3. (6)解构赋值的用途

    解构赋值的用途 1.交换变量的值 var a = 100; var b = 200; var t; t = a; a = b; b = t; //解构赋值的写法完成[ES6交换变量的值] var x ...

  4. Linux下各文件夹的结构说明及用途介绍(转载)

    linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...

  5. es6变量赋值重命名

    es6变量赋值重命名: var cc = {te: "ni hao", }; var { te } = cc; var { te: bb } = cc;console.log(te ...

  6. Linux 下各文件夹的结构说明及用途介绍

    点击上方公众号,可快速关注) 来源:小宁哥 www.cnblogs.com/xningge/p/8331631.html linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /d ...

  7. Linux 下各文件夹的结构说明及用途介绍,看完这篇就秒入门了

    linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...

  8. “睡服”面试官系列第三篇之变量的结构赋值(建议收藏学习)

    目录 变量的解构赋值 1. 数组的解构赋值 2. 对象的解构赋值 3. 字符串的解构赋值 4. 数值和布尔值的解构赋值 5. 函数参数的解构赋值 6. 圆括号问题 7. 用途 变量的解构赋值 1. 数 ...

  9. ES6 WeakMap的实际用途是什么?

    本文翻译自:What are the actual uses of ES6 WeakMap? What are the actual uses of the WeakMap data structur ...

最新文章

  1. 20172307 2018-2019-1 《程序设计与数据结构》第4周学习总结
  2. jquery 对框架自适应高度 兼容各种浏览器
  3. java中正则全局匹配_JS中正则表达式全局匹配模式/g用法实例
  4. idea 提示vue插件_Vue + SpringBoot + MyBatis 音乐网站
  5. 直播回顾丨拆解 LTV:增长焦虑,企业如何诊断黄金流量?
  6. 原来国家的名字可以如此浪漫!(ZZ)
  7. android的热修复,Android热修复原理
  8. 文献阅读课10-Neural Relation Extraction for Knowledge Base Enrichment(提取+嵌入+消歧+规范化联合模型,实体已知,仅关系抽取,多词实体)
  9. 上传更新的代码到gitlab
  10. linux自动挂载windows磁盘
  11. 库存产品日期查询功能sql优化
  12. MongoDB一 之增删改查
  13. 云栖独栋别墅_云栖没有玫瑰
  14. SGU 327 Yet Another Palindrome(状态压缩DP)
  15. Django 创建超级用户
  16. 三级模式两级映像/数据库系统结构
  17. ps隐藏路径快捷键和PS隐藏路径的三种方法
  18. 【MDCC 2016】信息无障碍专题沙龙现场实录 | 附PPT下载
  19. SVN的正确使用方法以及疑难问题的处理(持续更新与补充)
  20. 模拟实现图片长按保存功能

热门文章

  1. JSON学习笔记(二)- 对象
  2. 极大似然估计 —— Maximum Likelihood Estimation
  3. 《软件架构设计》学习笔记--6--6大步骤2:领域建模
  4. 求助,后台跳转至前台,如何实现,谢谢
  5. HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效。...
  6. MaCfee导致Asp.net无法发送邮件的解决办法
  7. C++和C#编写调用COM组件
  8. 如何做好Serv-U安全设置,保护FTP服务器安全
  9. 5/100. Single Number
  10. Android新增Activity,并实现多Activity之间的切换