ES6
1、变量解构赋值
本质:“模式匹配”,等号两边模式相同,左边的变量就会被赋予对应的值
- 普通解构
let {name} = {name: 'zhangsan'}
name // "zhangsan"
- 解构不成功,变量的值等于
undefined
let {name} = {}
name // undefined
- 多层解构报错,原因:解构对象为空/模式不匹配,解构不成功,变量的值等于
undefined,undefined无自己的属性
// 从右边对象的personInfo中拿出age
// 错误 模式不匹配
let {personInfo:{age}} = {}
// Uncaught TypeError: Cannot read property 'age' of undefined
// 正确 模式匹配
let {personInfo:{age}} = {personInfo: {age: '18'}}
age // '18'