es6解构赋值的高级技巧
1. 解构嵌套的对象,注意,这时p
是模式,不是变量,因此不会被赋值。如果p
也要作为变量赋值,可以写成下面这样。
let obj = { p: [ 'Hello', { y: 'World' } ] }; let { p, p: [x, { y }] } = obj; x // "Hello" y // "World" p // ["Hello", {y: "World"}]
2. 解构我们需要的变量
let [ , , third] = ["foo", "bar", "baz"]; third // "baz"
3. 解构指定默认值
var {x = 3} = {}; x // 3
4. 如果解构模式是嵌套的对象,而且子对象所在的父属性不存在,那么将会报错。
// 报错 let {foo: {bar}} = {baz: 'baz'};