null
Значение null представляет отсутствие какого-либо объектного значения. В JavaScript, null является примитивом, и в контексте логических операций, рассматривается как ложное (falsy).
Синтаксис
nullОписание
Значение null записывается литералом null. Оно является самостоятельным, а не свойством глобального объекта (как undefined). В API, null часто присутствует в местах где ожидается объект, но подходящего объекта нет.
// переменная foo не существует - она не была определена и никогда не инициализировалась:
> foo
'ReferenceError: foo is not defined'
// переменная foo существует, но она не имеет ни типа, ни значения:
> var foo = null; foo
'null'
Отличия между null и undefined
null является определённым значением отсутствия объекта, тогда как undefined обозначает неопределённость. Например:
var element;
// значение переменной element до её инициализации не определённо: undefined
element = document.getElementById('not-exists');
// здесь при попытке получения несуществующего элемента, метод getElementById возвращает null
// переменная element теперь инициализирована значением null, её значение определено
При проверке на null или undefined, помните о различии между операторами равенства (==) и идентичности (===): с первым, выполняется преобразование типов.
typeof null // object (не "null" из соображений обратной совместимости)
typeof undefined // undefined
null === undefined // false
null == undefined // true
Спецификации
| Спецификация | Статус | Комментарии |
|---|---|---|
| ECMAScript 1-е издание. | Стандарт | Изначальное определение. |
| ECMAScript 5.1 (ECMA-262) Определение 'значение null' в этой спецификации. |
Стандарт | |
| ECMAScript 2015 (6th Edition, ECMA-262) Определение 'значение null' в этой спецификации. |
Стандарт | |
| ECMAScript (ECMA-262) Определение 'null value' в этой спецификации. |
Живой стандарт |
Совместимость с браузерами
BCD tables only load in the browser