JavaScript null и undefined
Тип null имеет всего одно значение — null
. Значение null
имеет специальное назначение — оно используется для инициализации переменной, которой впоследствии будет присвоен объект.
Использование оператора typeof
на null
возвращает строку object
. Однако на самом деле оно не является ссылкой на какой-либо объект. Это давнишняя ошибка в JS.
Тип undefined имеет всего одно значение — undefined
. Значение undefined
означает, что значение не было присвоено
. Получить значение undefined
можно в следующих случаях:
- при обращении к переменной, которая была объявлена, но не была инициализирована;
- при обращении к несуществующему свойству объекта;
- при обращении к несуществующему элементу массива;
- при обращении к параметрам функции, которые не были инициализированы аргументами при вызове функции;
- возвращается функциями, которые явно не имеют возвращаемого значения;
- возвращается оператором
typeof
, если операндом является несуществующая переменная.
Идентификатор undefined
является свойством глобального объекта, которое инициализировано значением undefined
.
Оператор равенства ==
считает null
и undefined
равными. Для их различия нужно применять оператор строгого равенства ===
:
alert(null == undefined); // true
alert(null === undefined); // false