Как обработать 'неопределенный' в JavaScript [дубликат]

Возможный дубликат:
Обнаружение неопределенного свойства объекта в JavaScript

От ниже образца JavaScript

 try {
    if(jsVar) {
     proceed();
      }
 }catch(e){
      alert(e);
 }

этот jsVar объявляется и инициализируется в другом файле.

Проблема состоит в том, что код бросает неопределенную ошибку, когда этот код выполнен, прежде чем другой файл (где его заявленное и инициализированный) выполняется. Именно поэтому это окружается, пытаются поймать.

Что лучший способ состоит в том, чтобы обработать эту неопределенную ошибку, чем выгода попытки?

61
задан Supersolver 26 September 2019 в 20:37
поделиться

3 ответа

Вы можете проверить этот факт с помощью

if (typeof(jsVar) == 'undefined') {
  ...
}
91
ответ дан 24 November 2019 в 17:19
поделиться

В javascript следующие значения будут приводить к отказу условия if и невыполнению его утверждения: null, undefined, false, NaN, число 0 и пустая строка ''.

Предполагая, что переменная jsVar является булевой и что мы хотим вызвать метод continue(), когда jsVar равен true, мы можем сделать следующую проверку.

if (jsVar && jsVar == true)
    proceed();

Сниппет, приведенный выше, сначала проверяет, что jsVar определен, а затем проверяет, что его значение истинно. Условие if будет выполнено только при выполнении обоих условий.

Если jsVar не является булевым, то вместо jsVar == true в приведенном выше коде можно заменить соответствующую проверку.

.
0
ответ дан 24 November 2019 в 17:19
поделиться

Как это часто бывает в JavaScript, существует несколько способов сделать это:

typeof foo !== 'undefined'
window.foo !== undefined
'foo' in window

Первые два должны быть эквивалентны (до тех пор, пока foo не затенена локальной переменной), в то время как последний вернет true, если глобальная переменная определена, но не инициализирована (или явно установлена в undefined).

10
ответ дан 24 November 2019 в 17:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: