"проблема", которая у меня время от времени заключается в том, что у меня есть объект, например, 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
.
Какой идеальный способ проверить подобные ситуации?