ES6特性 解构
解构
解构允许用模板匹配来绑定值,解构支持数组和对象的匹配。解构会弱化失效,类似对象的查找标准foo["bar"]
,当未找到时会返回undefined
。
//数组匹配
var [a, ,b] = [1,2,3];
//对象匹配
var {op: a, lhs: {op: b}, rhs: c} = getASTNode()
//对象匹配缩写模式
//在作用域内绑定`op`,`lhs`和`rhs`
var {op, lhs, rhs} = getASTNode()
//也可以用于参数
function g({name: x}) {
console.log(x);
}
g({name: 5})
//解构弱化失效
var [a] = []
a === undefined;
//有默认值时的解构弱化失效
var [a = 1] = [];
a === 1;
数组的解构
只要等号两边的模式相同, 左边的变量就会被赋予对应位置上的值. 但是要注意以下两点:
对象的解构
同样,默认值要在对象属性严格等于undefined
时才会生效.
字符串数值布尔值函数参数的解构