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