JavaScript - 更有效地检查对象 - if...else 或 try...catch

问题描述 投票:0回答:1

检查下一个表达式之前数据是否存在的最佳方法是什么?例如,如果我有一个像这样的对象:

test = {
    "CompanyData": {
        "Address": {
            "RegisteredAddress": {
                "Country": null,
                "City": null,
                "Street": null
            }
        }
    }
}

也可能是:

test = {
    "CompanyData": null
}

我需要检查国家/地区是否为“xyz”。

最好的方法是什么?例如:

  1. if (test.CompanyData && test.CompanyData.Address && test.CompanyData.RegisteredAddress){...}
  2. 一些外部函数检查键是否在对象中
  3. try { if (test.CompanyData.Address.RegisteredAddress.Country == "xyz") {...}} ... catch(){}

所有选项都可以正常工作,但在我看来它们不是最佳实践。

javascript if-statement try-catch
1个回答
0
投票

最简洁、最有争议、最惯用的方法是使用 可选链接运算符 (

?.
):

if (test?.CompanyData?.Address?.RegisteredAddress?.Country === 'xyz') {
  // ...
}
© www.soinside.com 2019 - 2024. All rights reserved.