null
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Please take two minutes to fill out our short survey.
Значение null
представляет отсутствие какого-либо объектного значения. В JavaScript, null
является примитивом, и в контексте логических операций, рассматривается как ложное (falsy).
Интерактивный пример
function getVowels(str) {
const m = str.match(/[aeiou]/gi);
if (m === null) {
return 0;
}
return m.length;
}
console.log(getVowels("sky"));
// Expected output: 0
Синтаксис
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
Спецификации
Specification |
---|
ECMAScript® 2026 Language Specification # sec-null-value |