一.数组解析
1.let info=['dayfly',100,'男']; //数组赋值
let [name,age,gender]=info; //数组解构赋值
let info=['dayfly',100,'男'];
[name,age,gender]=info; //数组解构赋值
console.log(name);
console.log(other);
2.单行解析
let [name,age,gender]=['dayfly',100,'男'];
let [name,[age,gender]]=['dayfly',[100,'男']]; //需要对应上(数组层次也需要匹配)
3.let [,,gender]=['dayfly',100,'男'];//用逗号作为占位符,不赋值
4.设置了一个默认值
let [name,age,gender='男']=['dayfly',100,];
5....var的语法,可以将没有赋值的内容都赋值给这个变量
let [name,...other]=['dayfly',100,'男'];
console.log(name);
console.log(other);
二.对象解构(定义一个对象字面量,然后解构赋值)
1.let obj={
name:'dayfly',
age:1000
},name='dayfly2';
({name,age}=obj); //解构 用于这种情况
et {name,age}=obj;// 解构
2.设置默认值
let{name,age,gender='男'}=obj;
3.如果不想对象属性名作为解构变量,可以通过键值对的方式更改
let{name:myname,age:myage}=obj;//name age 无效
4.对象字面量里,嵌套了对象,解构时也用同样的方法解开
let obj={
name:'dayfly',
age:1000,
info:{
id:1,
gender:'男'
}
};
let {name,age,info:{id,gender}}=obj;
console.log(name);
console.log(age);
console.log(id);
console.log(gender);
单行简写模式
let{name,age}={name:'dayfly',age:100};