var person ={
name:'小明',
age:20,
gender:"male",
passport:"G-123456"}var{name, age, passport}= person;// name age passport 分别被赋值为对应属性
console.log(name, age, passport);
对一个对象进行解构赋值时,同样可以直接对嵌套的对象进行赋值,只要保证对应的层次一致
var person ={
name:"小明",
age:20,
address:{
city:"beijing",
street:"No.1 Road",
zipcode:"100001"}}var{name, address:{city: c, zipcode: z}}= person;// city不是变量,而是为了让c获得city属性
如果属性名不存在,变量被赋值为undefined
有些时候,如果变量已经被声明了,再次赋值的时候,正确的写法也会报错
var x, y;{x, y}={name:"ming", x:100, y:200}// js引擎会把{当作块处理,于是=就不再合法,正确的做法是用小括号括起来({x, y}={name:"ming", x:100, y:200})