我经常遇到的一个“问题”是我有一个对象,例如 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层嵌套)。
如果 user.loc
也是 undefined
,那么 if(user.loc.lat)
不仅返回 false
,这让我有点失望。
检查这种情况的理想方法是什么?