欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js_解构赋值_对象解构/解构对象语句的调试

程序员文章站 2022-03-04 23:41:29
...

解构对象

相关知识:
解构对象 (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);