为了账号安全,请及时绑定邮箱和手机立即绑定

【金秋打卡】第8天对象的解构赋值

标签:
前端工具

一、课程名称:前端工程师2022版

二、课程章节:ES6基础入门-解构赋值(3-1 对象解构赋值的原理-慕课网体系课 (imooc.com))

三、课程讲师:Alex

四、课程内容:

对象的解构赋值

1、原理(重点)

(1)模式(结构)匹配{}={}

(2)属性名相同的完成赋值,不要求顺序的前后

1)完整版:如const {'age':age,'username':username}={username:'Alex',age:18};

2)可以进行简写,如const {age,username}={username:'Alex',age:18};

3)同时还可以取别名,如const { age: age, username: uname } = { username: "Alex", age: 18 };

2、注意事项

(1)默认值的生效条件:对象的属性值严格等于undefined时,对应的默认值才会生效

const { username = "ZhangSan", age = 0 } = { username: "alex" };//右边相当于隐藏了一个

age:'undefined'

console.log(uesrname,age);    //'alex' 0

(2)默认表达式:如果默认值是表达式,默认值表达式是惰性求值的

(3)将一个已经声明的变量用于解构赋值:整个赋值需要在圆括号中进行,因为浏览器会误认为花括号内是块级作用域而报错,所以一定要添加圆括号,如({x}={x:1}),而数组则不需要添加圆括号

(4)可以取到继承的属性:如可以取得Object的toString属性

const { a = 1 } = {};

const { toString } = {};

console.log(toString);

console.log(Object.prototype);

console.log({});

(5)对象的解构赋值中,与顺序无关,需要注意的是,变量名与属性名必须一致

3、应用(重点)

(1)函数参数的解构赋值

https://img4.sycdn.imooc.com/635e99760001c9ab04200237.jpg

     // 原来的写法

        const logPersonInfo = (user) => console.log(user.username, user.age);

        logPersonInfo({ username: "alex", age: 18 });

      // 现在的写法,注意还可以设置默认值

        const logPersonInfo = (age, username) => console.log(username, age);

        logPersonInfo({ username: "alex", age: 18 });

      // 相当于{'age':age,'username':username}={username:'alex',age:18};

(2)复杂的嵌套:一一对应

 const obj = {

        x: 1,

        y: [2, 3, 4],

        z: {

          a: 5,

          b: 6,

        },

      };

      // const {x,y,z}=obj;

      // console.log(x,y,z);

      const {

        y,

        y: [, yy],

        z: z,

        z:{

            b:b

        }

      } = obj;

      console.log(yy, y, z);//3 (3) [2, 3, 4] {a: 5, b: 6}

      // [,yy]=[2,3,4],yy对应的是第二位,只需要在前面加一个逗号表示清楚即可

五、课程收获:

今天学习了对象的解构赋值,联系前面的数组的解构赋值相关的知识点还是比较好理解这一块知识的,应用的逻辑理解也是比较容易的,今天也是收获满满,继续加油!


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消