我时不时遇到的一个“问题”是我有一个对象,例如user = {}
,在使用应用程序的过程中,它会被填充。让我们说某处,在 AJAX 调用或我这样做之后:
user.loc = {
lat: 50,
long: 9
}
在另一个地方,我想检查是否user.loc.lat
存在。
if (user.loc.lat) {
// do something
}
如果它不存在,这将导致错误。如果user.loc.lat
是undefined
,user.loc
当然undefined
也是。
"Cannot read property 'lat' of null" - Dev Tools error
这意味着我需要像这样检查它:
if (user.loc) {
if (user.loc.lat) {
// do something
}
}
或者
if (user.loc && user.loc.lat) {
// do something
}
这不是很漂亮,我的对象越大越糟糕 - 显然(想象 10 级嵌套)。如果是这样的话,if(user.loc.lat)
它不仅会返回,这让我很不高兴。false
user.loc
undefined
检查此类情况的理想方法是什么?