Создание функции для проверки существования элемента JS - PullRequest
2 голосов
/ 16 февраля 2012

Я проверяю, существует ли много элементов javascript, используя:

if (typeof elem == "undefined")
  // Do something

Я хочу создать функцию, чтобы уменьшить количество повторений кода.

if (exists(elem))

Вот функция, которую я создал:

if (typeof exists == 'undefined') {
    function exists (e)
    {
        if (typeof e == "undefined")
            return false;
        return true;
    }
}

Проблема в том, что переменная не определена до прохождения через функцию. Это генерирует ошибку JavaScript. Как мне создать функцию для этого?

1 Ответ

3 голосов
/ 16 февраля 2012

"Проблема в том, что переменная не определена до прохождения через функцию. Она генерирует ошибку JavaScript."

Под «undefined» я полагаю, вы имеете в виду «undeclared» , что вызывает ReferenceError.

Если это так, вам нужно проверить, существует ли он, прежде чем передать его в функцию, что делает функцию довольно бессмысленной.

Вместо того, чтобы пытаться создать функцию для проверки необъявленных переменных, просто объявите их перед использованием.

IMO, typeof x === 'undefined' - отвратительный взлом, который не должен быть необходим. Вы должны считать ReferenceError своим другом, который говорит вам, что нужно что-то исправить. Взлом typeof не позволяет вашему другу рассказать вам, что происходит.

...