对象解构 -ES6

1、等号右边可以为任何可以转换为对象的数据结构

1)undefined与null不能

let {pop:x} = undefined // TypeError
let {pop:x} = null      // TypeError

2)对于String,

3)对于

2、根据对象属性名,先找到同名属性,再赋值给对应的变量,不存在undefined

let {name:a} = {name:'sdsd'} // a = 'sdsd'
let {name:name} = {name:'sdsd'} 
// 简写:
let {name} = {name:'sdsd'} // name = 'sdsd'
let g ;
({g} = {g:1})  //不能去掉括号,会将{}理解成一个代码块
console.log(g) //g =1
({} = [1,2]) //语法正确,无意义
({} = 'acv') //语法正确,无意义

3、对象解构可以有默认值

let {x=3} = {}
let {x,y=5} = {x:1},
let {x:y=1} = {} ,//y=1
let {x:y=1} = {x:4} //y=4
原文地址:https://www.cnblogs.com/yuyedaocao/p/11989261.html