js_解构赋值_对象解构/解构对象语句的调试
解构对象
相关知识:
解构对象 (mozilla.org)
调试
给新的变量命名并提供默认值
一个属性可以同时 1)从一个对象解构,并分配给一个不同名称的变量 2)分配一个默认值,以防未解构的值是 undefined。
为了方便调试,您可以将默认值设定为具有特别含义的字符串或者数值,可以帮助你定位到问题发生的地方,也有助于程序运行下去!
这里,aa
作为被解构对象的属性名a
的一个别名,语法如下
var {a:aa = 10, b:bb = 5} = {a: 3}; console.log(aa); // 3 console.log(bb); // 5
解构对象需要小心的
- 某些对象比较简单,解构出来的属性是一个基础变量而不是像指针(对象的引用)那么这时候对这个解构出来的变量赋值需要注意它可能就不会影响到被解构对象,从而导致赋值失败!
- 当然,有时候,我们仅需要读取被解构对象的某个属性值,就没有这种顾虑,但是前面一种情况可能还是占大多数,所以要小心使用
代码示例
egg.js 后端的一段解构代码
// this.ctx.body = "hellp jwt"; const { ctx, app } = this; console.log(app, `@app`); console.log(ctx, `@ctx`); /* 结构语法的不当使用(一种常见的错用形式就是,和成员访问运算符混合使用,导致被解构对象出现偏差) 例如,已知,app对象中存在有一个属性jwt,现在你需要将他复制给一个变量以便后续的多次引用.*/ // const { jwt } = app.jwt; // const{jwt}=app; //为解构变量赋值以默认值(有明确特定意义的字符串) const { jwt: appJwt = `deconstruct app.jwt` } = app; const { jwt: confJwt = `deconstruct app.config.jwt` } = app.config; // console.log(app.jwt, `@app.jwt`); console.log(appJwt, `@appConfig`); console.log(confJwt, `@confJwt`); const user = { username: "cxxu" }; const token = appJwt.sign(user, confJwt.secret);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2021-06-22 PC_规格化数及尾数相关表示形式和范围
2021-06-22 PC_二进制移位运算/定点数移位/算数移位及其移位后的空位添补规则/机器数位数扩充
2021-06-22 PC_溢出概念+判断方法+示例