提问人:Adam 提问时间:11/6/2023 最后编辑:VLAZAdam 更新时间:11/6/2023 访问量:58
JavaScript - 更高效的检查对象 - 如果...否则或尝试...catch [复制]
JavaScript - more efficient checking object - if...else or try...catch [duplicate]
问:
在下一个表达式之前检查数据是否存在的最佳方法是什么?例如,如果我有一个对象,例如:
test = {
"CompanyData": {
"Address": {
"RegisteredAddress": {
"Country": null,
"City": null,
"Street": null
}
}
}
}
可能的还有:
test = {
"CompanyData": null
}
我需要检查国家是否为“xyz”。
最好的方法是什么?例如:
if (test.CompanyData && test.CompanyData.Address && test.CompanyData.RegisteredAddress){...}
- 一些外部函数,用于检查键是否在对象中
- 短
try { if (test.CompanyData.Address.RegisteredAddress.Country == "xyz") {...}} ... catch(){}
所有选项都很好用,但在我看来它们不是最佳实践。
答:
4赞
Robby Cornelissen
11/6/2023
#1
最简洁、最有争议、最惯用的方法是使用可选的链接运算符 ():?.
if (test?.CompanyData?.Address?.RegisteredAddress?.Country === 'xyz') {
// ...
}
评论
try/catch
catch
if
else
catch(){}
是一个非常糟糕的主意