dr.Brain

doctor Brain

мир глазами веб-разработчика

null и undefined

чем отличаются null и undefined в JavaScript

dr.Brain

время чтения 1 мин.

Photo by Pawel Nolbert on Unsplash

null и undefined являются примитивными типами данных в JavaScript

Переменная, не имеющая присвоенного значения, получает тип undefined.

Null, в свою очередь - присваиваемое значение, означающее ноль или “пустоту”.

Так, при объявлении переменной без какого-либо значения, JavaScript автоматически присваивает значение undefined.

Присваивая переменной null, мы явно устанавливаем для нее “пустое” значение.

let name; // undefined
let age = null; // null

В JavaScript никогда не происходит автоматического присваивания значения null - это можно сделать только в коде.

Возвращаемый тип данных

console.log(typeof null); // object
console.log(typeof undefined); // undefined

Мы видим, что для null тип данных - объект, а для undefined - undefined.

Абстрактное (равенсто) и строгое (идентичность) сравнение

При строгом сравнении === этих типов данных мы получаем false:

console.log(null === undefined); // false
console.log(null == undefined); // true

А при абстрактном сравнении == результатом будет true.

Так что, можно сказать, что JavaScript считает null и undefined равными (так как эти типы данных означают “пустоту”), но не идентичными.

if (name == null){
    // код
}

if (name === undefined){
    // код
}

Мы видим, что, если нужно проверить значение - равно ли оно одновременно null и undefined, достаточно использовать абстрактное сравнение == с любым из этих примитивных типов данных. В каждом из случаев вернется один и тот же результат.


Спасибо за внимание.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.