JavaScript 可选链 ?. 的五种误用场景与替代写法
可选链操作符 ?. 从 ES2020 正式进入标准,现在已经是日常开发里离不开的语法。它让深层属性访问变得安全,也让很多原本需要临时变量判断的代码缩短到一行。但我在维护团队代码和 review 时发现,可选链被拿来当“万能防错”的情况越来越多:有人用它包住函数调用,有人用它做条件分支,有人把整个对象链都打上问号,结果运行时该抛的错误不抛了,该处理的空值被静默跳过,调试时反而更难定位问题。可选链本质上只做一件事——当左侧为 null 或 undefined 时短路求值,它不是类型守卫,也不是错误捕获机制。这篇文章结合真实代码片段,梳理几个常见的误用场景,并给出更清晰的替代写法。