短路求值时变量未定义报错该怎么处理?

公孙利君 阅读 13

在渲染列表时遇到问题,想用短路求值简化判断,但老是报错。比如写成item && item.name,当item是null时还能正常返回null,但如果item根本未定义就会报错。我试过加typeof检查:

data.items?.map(item => 
  item?.name ?? 'N/A'
)

但某些情况下依然会抛出ReferenceError,这该怎么改才安全?

我来解答 赞 7 收藏
二维码
手机扫码查看
1 条解答
书生シ颖杰
你得先确保变量存在,再用可选链。改成 data?.items?.map(item => item?.name ?? 'N/A') 就行了,前面加个问号保险点。真不行就 data && data.items && data.items.map(...) 这样层层判断,累是累了点,但稳。
点赞 5
2026-02-10 03:07