Добавляем...


  Значения undefined и null
    Тип undefined (неопределенный) используется для переменных или свойств объекта, значения для которых не существует или оно не присвоено. Единственным значением неопределенного типа, которое может иметь переменная, является значение undefined. Например, в результате объявления переменной без присваивания ей значения

var х;

переменная х получит неопределенный тип и значение undefined. При попытке доступа к несуществующему свойству объекта

var х = String.noSuchProperty;

результатом тоже будет присвоение переменной х значения undefined.
    Значение null указывает пустое значение. Это, в сущности, заменитель, представляющий "ничто". Различие между undefined и null понять очень непросто. Говоря простыми словами, undefined означает, что переменной не присвоено никакого значения, a null, - что ей присвоено пустое значение.
    Но почему создатели JavaScript решили использовать такие неясно различимые понятия? Не вдаваясь в детали, можно указать вполне конкретные случаи, когда это может оказаться полезным, особенно при использовании объектно-ориентированных возможностей языка. Предположим, например, что вы собираетесь создать объект, предлагающий метод doFancyStuff (), и функционирование этого метода зависит только от возможностей браузера. Можно провести распознавание браузера и задать функцию doFancyStuff (), если браузер оказывается одним из тех, которые поддерживает требуемую возможность. Если же пользователь имеет неподходящий браузер, можно установить doFancyStuff равной значению null, чтобы указать неприменимость метода. Таким образом, можно различать случай, когда соответствующая возможность поддерживается (doFancyStuff является функцией), случай, когда возможность не поддерживается (doFancyStuff равняется значению null), и случай, когда программный код распознавания браузера не выполнялся (doFancyStuff равняется значению undefined).
    Имеется еще одна тонкость, о которой тоже следует помнить: значение null определяется, как пустой объект. По этой причине использование оператора typeof с переменной, принимающей значение null, покажет, что типом такой переменной является object. Для сравнения: типом неопределенных данных является undefined.


Распознавание значений undefined и null

JavaScript предлагает ключевое слово null, с помощью которого можно выполнять сравнение и присваивать значение null. К сожалению, ключевое слово undefined имеется только в новейших версиях браузеров (Netscape 6+ и Internet Explorer 5.5+). Решение проблемы заключается в том, что при сравнении значения null и undefined считаются равными. Это значит, что неопределенные значения можно найти с помощью сравнения с null. Например, при наличии деклараций

var х;
var у = null;

в результате следующих сравнений будет получено true:

if (х == null)
{
// какие-то действия }
if (х == у)
{
// какие-то действия
}

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

if (z == null)
{
// какие-то действия
}

будет сгенерирована ошибка выполнения. Причина в том, что здесь z не только не определено, но и не существует.
назад: Булевы значения далее:


добавить комментарий
(без перезагрузки и регистрации)


10 случайных разделов

Что ищем на сайте ?


Примеры кода на сайте







@ 2008-2011 Amber
При использовании материалов ссылка на сайт обязательна
Яндекс.Метрика