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

Node.js中无需多层判断,避免读取嵌套null属性报错的方法

Node.js中规避多层属性判断的方案

以下几种方法可以替代繁琐的多层if判断,避免访问null/undefined属性时抛出错误:

  • 可选链操作符(?.)
    这是最直接的解决方案,ES2020及以上版本的Node.js支持。用?.替代普通的.访问属性,当链中任意环节为null或undefined时,表达式会直接返回undefined,不会抛出TypeError:
const lat2 = location?.address?.coordinate?.lat;
const lon2 = location?.address?.coordinate?.lon;
  • 可选链+空值合并操作符(??)
    如果需要为不存在的属性设置默认值(比如数据库存储需要默认值),可以结合??(仅对null/undefined生效,比||更精准):
const lat2 = location?.address?.coordinate?.lat ?? 0;
const lon2 = location?.address?.coordinate?.lon ?? 0;

这样当属性不存在时,会用0作为默认值,避免数据库存储undefined。

  • 解构赋值+默认值
    如果需要一次性提取多个属性,可使用解构赋值配合嵌套默认值,同样要结合可选链处理顶层可能的null/undefined:
const { address: { coordinate: { lat = 0, lon = 0 } = {} } = {} } = location ?? {};

这种写法适合批量提取属性,但层级较多时可读性略差,按需选择即可。

内容的提问来源于stack exchange,提问作者user1592380

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 06:55:00