什么是解构
使用ES6的一种语法规则,将一个对象或数组的某个属性提取到某个变量中。
解构不会对解构的目标造成任何影响
对象的解构
对于对象, 在我们要使用它的属性时,通常把属性保存在变量里
const user = {
name: "kevin",
age: 11,
sex: "男",
address: {
province: "四川",
city: "成都"
}
}
const age = user.age;
const name = user.name;
const sex = user.sex;
或者如下分开声明和赋值。(直接赋值可以用const;而分开先声明变量,再赋值的写法要用let)
// let name, age, sex, address;
// name = user.name;
// age = user.age;
// sex = user.sex;
// address = user.address;
现在我们学习了解构,就可以下面这种方式书写:
先定义4个变量,然后从对象中读取同名属性,放到变量中
let name, age, sex, adress;
({ name, age, sex, address } = user); //此处为了表明是解构语句,前面的不是对象,要用小括号括起来,表明“=user”和前面是一个整体
console.log(name, age, sex, address); //kevin 11 男 {province: "四川", city: "成都"}
合并书写效果也是一样的,它只是更方便书写的语法糖
let { name, age, sex, address } = user;
在解构中找不到同名属性,会被赋值undefined;如果找不到同名属性时想给它一个默认值就用“变量名 = 默认值”的形式书写
let {name,age,sex,address,abc = 123} = user;
给变量声明别名(就是变量和对象里的属性名不一样,又要解构该属性名的值时)用如下方式书写:
let { name, age, sex: gender, addr