Все эти ответы (кроме решения Фреда Гандта) либо неверны, либо неполны.
Предположим, мне нужно, чтобы мой variableName;
содержал значение undefined
, и поэтому оно было объявлено таким образом, как var variableName;
, что означает, что оно уже инициализировано ;- Как проверить, объявлено ли оно уже?
Или даже лучше - как сразу проверить, существует ли «Book1.chapter22.paragraph37» при одном вызове, но не возникает ли ошибка ссылки?
Мы делаем это, используя самый мощный оператор JasvaScript, оператор in .:
"[variable||property]" in [context||root]
>> true||false
Во времена пиковой популярности AJAX я написал метод (позже названный) isNS(), который способен определить, существует ли пространство имен, включая глубокие тесты для имен свойств, таких как «Book1.chapter22.paragraph37» и многое другое.
Но так как оно было ранее опубликовано и из-за его большой важностион заслуживает публикации в отдельной ветке. Я не буду публиковать его здесь, но предоставлю ключевые слова ( javascript + isNS ), которые помогут вам найти исходный код со всеми необходимыми пояснениями.