Почему alert не срабатывает для несуществующей переменной?
Почему alert не срабатывает для несуществующей переменной?
javascript: alert(qetgeeqqre); Вставьте это в адресную строку и запустите. Насколько мне помнится, раньше это работало и выдавало undefined в качестве результата в окошке. Firefox 13.0.1 - может произошли какие-то изменения в безопасности? Сейчас работает только если предварительно описать переменную: javascript: var qetgeeqqre; alert(qetgeeqqre); Покажет "undefined" как и ожидается. |
Странно Вам помнится.
alert(qetgeeqqre);Вполне ожидаемая ошибка Цитата:
var qetgeeqqre; alert(qetgeeqqre); |
Возможно я перепутал с несуществующими свойствами DOM-объектов. Но мне кажется, и переменные в прежних версиях firefox можно было так проверять.
Хорошо, а как же узнать - была ли объявлена переменная или нет (существует ли она)? |
Если нужно проверить существование глобальной переменной — то так:
var a; alert('a' in window) // объявлена alert('b' in window) // не объявлена Но в случае локальных переменных так уже не получится (function () { var a; alert('a' in window) alert('b' in window) })() В общем случае, достаточно будет проверки на undefined, т.к. вряд ли для Вас принципиально, объявлена ли переменная или же инициализирована undefined'ом. alert(typeof someVariable === 'undefined') |
Цитата:
var b; var c=1; alert(typeof a); alert(typeof b); alert(typeof c); |
Почемучкин,
Все правильно! Переменной нету, оно и не должно возвращать другое значение! Благодаря этому и определяем существование переменной, объекта! |
Цитата:
Спасибо ответившим! |
Еще вопрос: можно ли удалить переменную так, чтобы ни следа не осталось? То есть чтобы она стала undefined и необъявленной при этом?
|
Цитата:
var val; она останется таковой. Т.е. "удалить объявление" переменной нельзя. |
Цитата:
|
Часовой пояс GMT +3, время: 07:51. |