博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ES6 对象的解构赋值
阅读量:5943 次
发布时间:2019-06-19

本文共 832 字,大约阅读时间需要 2 分钟。

对象的解构赋值

解构不仅可以用于数组,还可以用于对象。

let {foo,bar} = {foo:"aaa",bar:"bbb"};console.log(foo); // aaaconsole.log(bar); // bbb

这里的foo,bar一定要对应。

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

真正被赋值的是后者,而不是前者。

let { foo: baz } = { foo: "aaa", bar: "bbb" };baz // "aaa"foo // error: foo is not defined

上面代码中,foo是匹配的模式,baz才是变量。真正被赋值的是变量baz,而不是模式foo。

与数组一样,解构也可以用于嵌套结构的对象。

let obj = {    p: [      'Hello',      { y: 'World' }    ]};let { p: [x, { y }] } = obj;console.log(x) // "Hello"console.log(y) // "World"

对象的解构也可以指定默认值。

var {x = 3} = {};x // 3var {x, y = 5} = {x: 1};x // 1y // 5var {x: y = 3} = {};y // 3var {x: y = 3} = {x: 5};y // 5var { message: msg = 'Something went wrong' } = {};msg // "Something went wrong"

默认值生效的条件是,对象的属性值严格等于undefined。

var {x = 3} = {x: undefined};x // 3var {x = 3} = {x: null};x // null

转载地址:http://itwxx.baihongyu.com/

你可能感兴趣的文章
【图论】广度优先搜索和深度优先搜索
查看>>
Android开发环境搭建(图文教程)
查看>>
Linux在线用户通信
查看>>
SSH框架总结(框架分析+环境搭建+实例源代码下载)
查看>>
Mapnik读取PostGIS数据渲染图片
查看>>
javascript中使用Map
查看>>
backbonejs中的模型篇(二)
查看>>
Spring MVC 3 深入总结
查看>>
内存泄漏以及常见的解决方法
查看>>
HDP2.0.6+hadoop2.2.0+eclipse(windows和linux下)调试环境搭建
查看>>
【转】R语言笔记--颜色的使用
查看>>
.woff HTTP GET 404 (Not Found)
查看>>
.NET基础之自定义泛型
查看>>
HTML5 Canvas 实现的9个 Loading 效果
查看>>
java.lang.NoClassDefFoundError: org/apache/avro/ipc/Responder
查看>>
利用JasperReport+iReport进行Web报表开发
查看>>
JSON and Microsoft Technologies(翻译)
查看>>
ylbtech-LanguageSamples-ConditionalMethods(条件方法)
查看>>
js 判断各种数据类型
查看>>
【leetcode】Find Peak Element ☆
查看>>