Я проверяю if(response[0].title !== undefined)
, но получаю ошибку:
Uncaught TypeError: невозможно прочитать свойство 'title' из undefined.
Я проверяю if(response[0].title !== undefined)
, но получаю ошибку:
Uncaught TypeError: невозможно прочитать свойство 'title' из undefined.
response[0]
не определен, проверьте, определено ли оно, а затем проверьте его заголовок свойства.
if(typeof response[0] !== 'undefined' && typeof response[0].title !== 'undefined'){
//Do something
}
У меня были проблемы со всеми другими примерами кода выше. В Chrome это было условие, которое сработало для меня:
typeof possiblyUndefinedVariable !== "undefined"
Мне нужно будет проверить это в других браузерах и посмотреть, как все происходит.
Просто проверьте, есть ли response[0]
undefined:
if(response[0] !== undefined) { ... }
Если вам все еще нужно явно проверить заголовок, сделайте это после начальной проверки:
if(response[0] !== undefined && response[0].title !== undefined){ ... }
На самом деле вы должны окружить его блоком Try/Catch, чтобы ваш код не переставал работать. Вот так:
try{
if(typeof response[0].title !== 'undefined') {
doSomething();
}
}catch(e){
console.log('responde[0].title is undefined');
}
TypeOf:
var foo;
if (typeof foo == "undefined"){
//do stuff
}
Это будет потому, что response[0]
сам undefined.
Проверьте, действительно ли вы response[0]
, ошибка кажется предположительной.
Вы должны сначала проверить, есть ли response[0]
undefined, и только если это не так, проверьте остальное. Это означает, что в вашем случае response[0]
есть undefined.
Проверьте, если condition == null
;
Это решит проблему.
Я знаю, что я поехал здесь на 7 месяцев позже, но я нашел эти вопросы, и это выглядит интересно. Я попробовал это на консоли браузера.
try{x,true}catch(e){false}
Если переменная x undefined, ошибка будет уловлена, и она будет ложной, если нет, она вернет true. Таким образом, вы можете использовать функцию eval для установки значения переменной
var isxdefined = eval('try{x,true}catch(e){false}')