对象解构

作者: F_wind | 来源:发表于2021-01-22 22:09 被阅读0次

《深入理解ES6》阅读随笔

在 ES6 中,对于解构对象做了一系列改进,使其用起来更加方面。

  1. 提取对象字面量:在 ES5 中,是怎么做的:
var user = { 
    name:"Tom",
    age:18
}
var name = user.name
var age = user.age
console.log(names, age); // Tom 18

而在 ES6 中,进行了如下简化:

var user = { 
    name:"Tom",
    age:18
}
var { name, age } = user
console.log(names, age); // Tom 18

如此一来,既节省了很多重复代码,而且结构也更清晰一些;
注意:在使用 var、let 和 const 解构声明时需要初始化,以下未声明方式初始化方式是错误的:

var user = { 
    name:"Tom",
    age:18
}
var { name, age }
console.log(names, age); // Error
  1. 解构赋值:在解构对象时也可以给已存在变量赋值,如下所示:
let user = {
    name: "Tom",
    age: 18,
  },
  name = "Jack",
  age = 17;
({ name, age } = user);
console.log(names, age); // Tom 18
  1. 默认解构值:如果在解构对象时,声明未定义变量,那么默认会返回 undefined,也可以在声明时设置默认值,如下所示:
let user = {
  name: "Tom",
  age: 18,
};
let { wight = 60, height } = user;
console.log(wight, height); // 60 undefined
  1. 解构重命名:有时候,我们希望在解构对象时变更一下变量名称,在 ES6 中是这么做的:
let user = {
  name: "Tom",
  age: 18,
};
let { name: newName } = user;
console.log(newName); // Tom
  1. 嵌套解构:上面的例子中对象都只有一层,实际上,在多次对象嵌套中,上面介绍的改进也都成立,下面是一个简单的例子:
let user = {
  name: "Tom",
  age: 18,
  parent: {
    father: "Jack",
    mother: "Lucy",
  },
};
let {
  parent: { father, mother },
} = user;
console.log(father, mother);    // Jack Lucy

相关文章

  • 3.解构赋值

    解构的分类 对象解构 数组解构 混合解构 解构参数 对象解构 解构赋值 嵌套对象解构 数组解构 数组解构 选择性的...

  • 深入理解ES6--5.解构:更方便的数据访问

    主要知识点:对象解构、数组解构、混合解构以及参数解构 1. 对象解构 对象解构语法 对象解构语法在赋值语句的左侧使...

  • ES6系列 (六)解构

    目标 解构对象 解构数组 结合数组解构和对象解构 了解解构的类型 思考 解构对象 使用解构语句解构数据结构,提取n...

  • 解构赋值

    解构赋值 数组的解构赋值 嵌套,默认值,展开符 对象的解构赋值 对象解构赋值的本质与简写 对象解构的模式与变量 对...

  • ES6之解构表达式

    数组解构 对象解构

  • ES6之解构

    对象解构 解构赋值 默认值 数组解构 数组解构的语法看起来与对象解构非常相似,只是将对象字面量替换成了数组字面量。...

  • ECMAScript6 -- 解构赋值

    解构赋值 数组的解构赋值 对象的解构赋值 特殊: 数组的解构赋值 如果右边不是数组,默认转换为类数组 对象的解构赋...

  • 变量的解构总结

    es变量赋值的新写法 不完全解构、 报错的几种情况: 默认值 对象解构,对象解构没有秩序 字符串解构 函数解构 用...

  • ES6-对象解构与数组解构

    1.对象解构 2.数组解构

  • 解构

    对象的函数解构 json 数组的解构

网友评论

    本文标题:对象解构

    本文链接:https://www.haomeiwen.com/subject/lenezktx.html