对象解构、嵌套解构

1. 使用对象结构并且重命名

// 使用对象解构
let person = {
  name: 'Matt',
  age: 27
};
let { name: personName, age: personAge } = person;
console.log(personName); // Matt
console.log(personAge); // 27

2. 引用的属性不存在

解构赋值不一定与对象的属性匹配。赋值的时候可以忽略某些属性,而如果引用的属性不存在,则该变量的值就是 undefined。也可以在解构赋值的同时定义默认值,这适用于引用的属性不存在于源对象中的情况。

let person = {
  name: 'Matt',
  age: 27
};
let { name, job='Software engineer' } = person;
console.log(name); // Matt
console.log(job); // Software engineer

3. 给事先声明的变量赋值

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

let personName, personAge;
let person = {
  name: 'Matt',
  age: 27
};
({name: personName, age: personAge} = person);
console.log(personName, personAge); // Matt, 27

4. 嵌套解构

解构赋值可以使用嵌套结构,以匹配嵌套的属性。

let person = {
  name: 'Matt',
  age: 27,
  job: {
    title: 'Software engineer'
  }
};
// 声明 title 变量并将 person.job.title 的值赋给它
let { job: { title } } = person;
console.log(title); // Software engineer
posted @ 2023-02-07 09:22  Li_pk  阅读(92)  评论(0)    收藏  举报