zoukankan      html  css  js  c++  java
  • es6 对象解构赋值

    基本使用语法

    注意:对象解构赋值的键名对应很重要,不然会找不到。因为对象是无序的,必须通过键名来识别。

    未先声明变量再进行对象解构赋值

    //对象的键名和键值一致时,可以只写一个变量名即可
    let {aa,bb} = {aa:123,bb:456};
    //等价于 let {aa:aa,bb:bb} = {aa:123,bb:456};
    console.log(aa,bb); // 123  456

    先声明变量再进行对象解构赋值

    let aa,bb;
    //对象的键名和键值一致时,可以只写一个变量名即可
    ({aa,bb} = {aa:123,bb:456});
    console.log(aa,bb); // 123  456

    注意:如果变量已经事先被声明了,那么在进行对象解构赋值的时候一定要用小括号包住,不然会报错。

    对象的键名和键值不一致时

    //对象的键名和键值一致时,可以只写一个变量名即可
    let {aa:a,bb:b} = {aa:123,bb:456};
    console.log(a,b); // 123  456
    console.log(aa); // 报错aa is not defined

    上面的代码中,对象的解构赋值是内部机制,是先找到同名属性,然后再赋给对应的变量。
    aa是匹配的模式, a才是变量。真正被赋值的是后者,而不是前者。

    有默认值的对象解构赋值

    let {a = 3,b = 4} = {a:5}
    console.log(a,b); // 5  4

    对象解构赋值的使用场景

    处理后端返回的json数据,取出自己想要的字段值

    let dataJson = {
    title:"abc",
    name:"winne",
    test:[{
       title:"ggg",
       desc:"对象解构赋值"
    }]
    }
    //我们只需要取出需要的两个title值(注意结构和键名)
    let {title:oneTitle,test:[{title:twoTitle}]} = dataJson;
    //如果只需要其中一个数据,直接根据结构键名来写就好了
    let { name } = dataJson;  //相当于es5的 let name = dataJson.name;
    console.log(oneTitle,twoTitle); // abc  ggg
    console.log(name); // winne

    注意:json结构和键名要一一对应才能进行正确解构赋值。

  • 相关阅读:
    angular-指令
    microbit 范例课程
    microsoft 为microbit.org 设计的课程
    Microbit 翻译计划及IDE 中文化
    Microbit MicroPython 介绍
    micro:bit 软件生态系统介绍
    Microbit 硬件架构介绍
    TCP协议和UDP协议下的socket
    爬虫-链家二手房
    函数相关
  • 原文地址:https://www.cnblogs.com/ddqyc/p/15696425.html
Copyright © 2011-2022 走看看