Возможный дубликат:
Обнаружение неопределенного свойства объекта в JavaScriptОт ниже образца JavaScript
try { if(jsVar) { proceed(); } }catch(e){ alert(e); }
этот jsVar объявляется и инициализируется в другом файле.
Проблема состоит в том, что код бросает неопределенную ошибку, когда этот код выполнен, прежде чем другой файл (где его заявленное и инициализированный) выполняется. Именно поэтому это окружается, пытаются поймать.
Что лучший способ состоит в том, чтобы обработать эту неопределенную ошибку, чем выгода попытки?
Вы можете проверить этот факт с помощью
if (typeof(jsVar) == 'undefined') {
...
}
В javascript следующие значения будут приводить к отказу условия if и невыполнению его утверждения: null, undefined, false, NaN, число 0 и пустая строка ''.
Предполагая, что переменная jsVar является булевой и что мы хотим вызвать метод continue(), когда jsVar равен true, мы можем сделать следующую проверку.
if (jsVar && jsVar == true)
proceed();
Сниппет, приведенный выше, сначала проверяет, что jsVar определен, а затем проверяет, что его значение истинно. Условие if будет выполнено только при выполнении обоих условий.
Если jsVar не является булевым, то вместо jsVar == true в приведенном выше коде можно заменить соответствующую проверку.
.Как это часто бывает в JavaScript, существует несколько способов сделать это:
typeof foo !== 'undefined'
window.foo !== undefined
'foo' in window
Первые два должны быть эквивалентны (до тех пор, пока foo
не затенена локальной переменной), в то время как последний вернет true
, если глобальная переменная определена, но не инициализирована (или явно установлена в undefined
).