You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于JavaScript中const {foo=20} = bar语句的含义及等价写法的确认

关于JavaScript中const {foo=20} = bar语句的含义及等价写法的确认

嘿,你的理解完全正确!这种写法是JavaScript里的对象解构赋值,还顺便给解构的变量设置了默认值。

当你写下:

const {foo = 20} = bar

它的逻辑很明确:如果bar对象里存在foo属性,并且这个属性的值不是undefined,那foo变量就会被赋值为bar.foo;要是bar.foo不存在或者值为undefined,就会启用默认值20。

你提到的等价写法:

const foo = bar?.foo ?? 20

确实和上面的解构语句效果完全一致——?.可选链操作符会安全访问bar的foo属性(避免bar为null/undefined时报错),??空值合并操作符只会在左侧是null或undefined时才使用右侧的默认值,这和解构赋值里的默认值规则完美匹配。

备注:内容来源于stack exchange,提问作者thebjorn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 18:08:08