关于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
相关产品推荐
相关产品推荐

