直接看例子:

不使用对象解构:

let person = {
  name: "Tom",
  age: 18
}

let personName = person.name;
let personAge = person.age;

console.log(personName); //Tom
console.log(personAge);  //18

使用对象解构:

let person = {
  name: "Tom",
  age: 18
}

let { name: personName, age: personAge } = person;

console.log(personName); //Tom
console.log(personAge);  //18

使用解构,可以在一个类似对象字面量的结构中,声明多个变量,同时执行多个赋值操作。如果想要变量直接使用属性的名称,那么也可以简写:

let person = {
  name: "Tom",
  age: 18
}

let { name, age } = person;

console.log(name); //Tom
console.log(age);  //18

解构赋值不一定与对象的属性匹配。赋值的时候可以忽略某些属性,==而如果引用的属性不存在,则该变量的值就是undefined;==

let person = {
  name: "Tom",
  age: 18
}

let { name, job } = person;

console.log(name); //Tom
console.log(job);  //undefined

也可以在解构赋值的同时定义默认值,这适用于引用的属性不存在的情况:

let person = {
  name: "Tom",
  age: 18
}

let { name, job = 'coder' } = person;

console.log(name); //Tom
console.log(job);  //coder

注意的是nullundefined 不能被解构,否则会抛出错误:

let {_} = null;       //typeError
let {_} = undefined;  //typeError

解构并不要求变量必须在解构表达式中声明。不过,要想给事先声明的变量赋值,则表达式必须包含在一对括号中:

最后修改:2021 年 08 月 25 日 11 : 37 AM
如果觉得我的文章对你有用,请随意赞赏