Значение null
представляет отсутствие какого-либо объектного значения. В JavaScript, null
является примитивом, и в контексте логических операций, рассматривается как ложное (falsy).
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Синтаксис
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
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.