Как сравнить переменные с 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 ...