ES6中如何为解构得到的未定义对象设置默认值?
解决ES6解构未定义对象时的赋值报错问题
当你从requestObj1解构var1但原对象没有这个属性时,直接给var1赋值属性会报错——核心原因是var1为undefined,无法给它添加属性。解决办法就是在解构时给var1设置默认的空对象,具体操作如下:
直接在解构阶段设置默认值
把原来的解构代码:
const { var1 } = requestObj1;
改成:
const { var1 = {} } = requestObj1;
这样即使requestObj1里没有var1属性,解构出来的var1也会是一个空对象,后续执行var1.anotherVariable = reqObj2?.anotherObj?.value时就不会再触发“无法读取undefined的属性”的错误。
额外优化:处理右侧赋值的undefined情况
如果reqObj2?.anotherObj?.value可能返回undefined,你还可以配合空值合并运算符??给anotherVariable设置默认值,避免它变成undefined:
var1.anotherVariable = reqObj2?.anotherObj?.value ?? '默认值';
内容的提问来源于stack exchange,提问作者Soujanya Jscodebit
相关产品推荐
相关产品推荐

