Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как проверить сеществование обьекта? (https://javascript.ru/forum/events/65526-kak-proverit-seshhestvovanie-obekta.html)

optsar 24.10.2016 01:24

Как проверить сеществование обьекта?
 
Подскажите как проверить существует ли вообще обьект?
obj.product.item

obj может и не быть

рони 24.10.2016 01:29

optsar,
if(obj && obj.product && obj.product.item)

Aetae 24.10.2016 01:32

рони, :)
ReferenceError: obj is not defined

optsar,
if(typeof obj === 'object') //...

рони 24.10.2016 01:51

Aetae,
не знаю, не понимаю, можно перевод?

optsar 24.10.2016 01:55

Вот так вот нормально проверяет, спасибо
if(obj && obj.product && obj.product[item])

а нет аналога как в php isset(obj.product[item]) ?

http://locutus.io/php/var/isset/ это тоже ошибку вызывает

Aetae 24.10.2016 02:12

Цитата:

Сообщение от optsar (Сообщение 432721)
а нет аналога как в php isset(obj.product[item]) ?

Нет. Можно через try catch - но это плохой вариант.

Яростный Меч 24.10.2016 03:40

полный вариант:

if (typeof obj === 'object' && obj && obj.product && obj.product[item]) { ... }


typeof проверяет что такая переменная есть и является объектом, ну а obj проверяет, что не нулл.

рони 24.10.2016 07:57

Яростный Меч,
а зачем тогда
Цитата:

Сообщение от Яростный Меч
&& obj

? и какой смысл проверять на обьект?

destus 24.10.2016 08:12

Цитата:

а нет аналога как в php isset(obj.product[item]) ?
Если просто хочется покрасивее, используй кофескрипт и будет тебе счастье
obj? && obj.product?.item?

Aetae 24.10.2016 14:49

рони, потому что родовая травма javascript:) :
alert( typeof null )


Часовой пояс GMT +3, время: 04:21.