Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.10.2016, 01:24
Аспирант
Отправить личное сообщение для optsar Посмотреть профиль Найти все сообщения от optsar
 
Регистрация: 02.11.2015
Сообщений: 30

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

obj может и не быть
Ответить с цитированием
  #2 (permalink)  
Старый 24.10.2016, 01:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

optsar,
if(obj && obj.product && obj.product.item)
Ответить с цитированием
  #3 (permalink)  
Старый 24.10.2016, 01:32
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

рони,
ReferenceError: obj is not defined

optsar,
if(typeof obj === 'object') //...
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 24.10.2016, 01:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Aetae,
не знаю, не понимаю, можно перевод?
Ответить с цитированием
  #5 (permalink)  
Старый 24.10.2016, 01:55
Аспирант
Отправить личное сообщение для optsar Посмотреть профиль Найти все сообщения от optsar
 
Регистрация: 02.11.2015
Сообщений: 30

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

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

http://locutus.io/php/var/isset/ это тоже ошибку вызывает
Ответить с цитированием
  #6 (permalink)  
Старый 24.10.2016, 02:12
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Сообщение от optsar Посмотреть сообщение
а нет аналога как в php isset(obj.product[item]) ?
Нет. Можно через try catch - но это плохой вариант.
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 24.10.2016, 03:40
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

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

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


typeof проверяет что такая переменная есть и является объектом, ну а obj проверяет, что не нулл.
Ответить с цитированием
  #8 (permalink)  
Старый 24.10.2016, 07:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Яростный Меч,
а зачем тогда
Сообщение от Яростный Меч
&& obj
? и какой смысл проверять на обьект?
Ответить с цитированием
  #9 (permalink)  
Старый 24.10.2016, 08:12
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Цитата:
а нет аналога как в php isset(obj.product[item]) ?
Если просто хочется покрасивее, используй кофескрипт и будет тебе счастье
obj? && obj.product?.item?
Ответить с цитированием
  #10 (permalink)  
Старый 24.10.2016, 14:49
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

рони, потому что родовая травма javascript :
alert( typeof null )
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как проверить класс в одном блоке и добавить в другой webdesing25 jQuery 1 18.07.2014 02:37
Как проверить из iframe адрес всего сайта? culver Events/DOM/Window 9 29.05.2013 12:02
Как проверить корректность поля e-mail? daniilino Общие вопросы Javascript 9 15.05.2012 16:50
Проверить вес загружаемого изображения на стороне клиента - как? Volonter Общие вопросы Javascript 2 18.10.2011 01:46
Как проверить ссылку на работоспособнось? Oleg_777 Общие вопросы Javascript 23 19.03.2009 18:57