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.

We’d love to hear your thoughts on the next set of proposals for the JavaScript language. You can find a description of the proposals here.
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 часто присутствует в местах где ожидается объект, но подходящего объекта нет.

js
// переменная foo не существует - она не была определена и никогда не инициализировалась:
> foo
'ReferenceError: foo is not defined'

// переменная foo существует, но она не имеет ни типа, ни значения:
> var foo = null; foo
'null'

Отличия между null и undefined

null является определённым значением отсутствия объекта, тогда как undefined обозначает неопределённость. Например:

js
var element;
// значение переменной element до её инициализации не определённо: undefined

element = document.getElementById("not-exists");
// здесь при попытке получения несуществующего элемента, метод getElementById возвращает null
// переменная element теперь инициализирована значением null, её значение определено

При проверке на null или undefined, помните о различии между операторами равенства (==) и идентичности (===): с первым, выполняется преобразование типов.

js
typeof null; // object (не "null" из соображений обратной совместимости)
typeof undefined; // undefined
null === undefined; // false
null == undefined; // true

Спецификации

Specification
ECMAScript® 2026 Language Specification
# sec-null-value

Совместимость с браузерами

Смотрите также