Подтвердить что ты не робот

Проверьте, не что-то не undefined в JavaScript

Я проверяю if(response[0].title !== undefined), но получаю ошибку:

Uncaught TypeError: невозможно прочитать свойство 'title' из undefined.

4b9b3361

Ответ 1

response[0] не определен, проверьте, определено ли оно, а затем проверьте его заголовок свойства.

if(typeof response[0] !== 'undefined' && typeof response[0].title !== 'undefined'){
    //Do something
}

Ответ 2

У меня были проблемы со всеми другими примерами кода выше. В Chrome это было условие, которое сработало для меня:

typeof possiblyUndefinedVariable !== "undefined"

Мне нужно будет проверить это в других браузерах и посмотреть, как все происходит.

Ответ 3

Просто проверьте, есть ли response[0] undefined:

if(response[0] !== undefined) { ... }

Если вам все еще нужно явно проверить заголовок, сделайте это после начальной проверки:

if(response[0] !== undefined && response[0].title !== undefined){ ... }

Ответ 4

На самом деле вы должны окружить его блоком Try/Catch, чтобы ваш код не переставал работать. Вот так:

try{
    if(typeof response[0].title !== 'undefined') {
        doSomething();
    }
  }catch(e){
    console.log('responde[0].title is undefined'); 
  }

Ответ 5

TypeOf:

var foo;
if (typeof foo == "undefined"){
  //do stuff
}

Ответ 6

Это будет потому, что response[0] сам undefined.

Ответ 7

Проверьте, действительно ли вы response[0], ошибка кажется предположительной.

Ответ 8

Вы должны сначала проверить, есть ли response[0] undefined, и только если это не так, проверьте остальное. Это означает, что в вашем случае response[0] есть undefined.

Ответ 9

Проверьте, если condition == null; Это решит проблему.

Ответ 10

Я знаю, что я поехал здесь на 7 месяцев позже, но я нашел эти вопросы, и это выглядит интересно. Я попробовал это на консоли браузера.

try{x,true}catch(e){false}

Если переменная x undefined, ошибка будет уловлена, и она будет ложной, если нет, она вернет true. Таким образом, вы можете использовать функцию eval для установки значения переменной

var isxdefined = eval('try{x,true}catch(e){false}')