Как сравнить переменные с undefined, если я не знаю, существуют ли они?
В JavaScript вы можете объявить переменную, и если ее undefined
, вы можете проверить variable == undefined
; Я знаю это, но как вы можете сравнить значение, которое вы еще не знаете, если оно в памяти?
Например, у меня есть класс, который создается, когда пользователь нажимает кнопку. До этого класс undefined - он нигде не существует; как я могу его сравнить?
Есть ли способ без использования try
- catch
?
Ответы
Ответ 1
Лучший способ - проверить тип , потому что undefined
/null
/false
- сложная вещь в JS.
Итак:
if(typeof obj !== "undefined") {
// obj is a valid variable, do something here.
}
Обратите внимание, что typeof
всегда возвращает строку и не генерирует ошибку, если переменная вообще не существует.
Ответ 2
if (obj === undefined)
{
// Create obj
}
Если вы занимаетесь обширным программированием javascript, вы должны привыкнуть использовать === и! ==, когда хотите сделать проверку типа.
Также, если вы собираетесь делать много javascript, я предлагаю запустить код через JSLint http://www.jslint.com, это может показаться немного сначала драконов, но большинство вещей, о которых JSLint предупреждает вас, в конечном итоге вернутся, чтобы укусить вас.
Ответ 3
if (document.getElementById('theElement')) // do whatever after this
Для undefined вещей, которые вызывают ошибки, проверьте имя свойства родительского объекта вместо имени переменной - поэтому вместо:
if (blah) ...
делать:
if (window.blah) ...
Ответ 4
!undefined
истинно в javascript, поэтому, если вы хотите узнать, является ли ваша переменная или объект undefined и вы хотите предпринять действия, вы можете сделать что-то вроде этого:
if(<object or variable>) {
//take actions if object is not undefined
} else {
//take actions if object is undefined
}
Ответ 5
if (!obj) {
// object (not class!) doesn't exist yet
}
else ...