Skip to main content

У чому різниця між null і undefined?

undefined

Що це: Значення «не визначено». Означає, що змінна існує, але в ній нічого не зберігається.

Коли з'являється:

  1. Якщо змінна оголошена, але не ініціалізована:
javascript
let user; console.log(user); // undefined
  1. Якщо функція нічого не повертає:
javascript
function greet() {} console.log(greet()); // undefined
  1. Якщо звертаєшся до неіснуючої властивості об'єкта:
javascript
const obj = {}; console.log(obj.age); // undefined

undefined зазвичай створюється автоматично рушієм JS, а не вручну.


null

Що це: Значення «порожньо» або «нічого немає», яке призначає сам розробник.

Коли використовувати:

  1. Коли хочеш явно показати, що значення відсутнє:
javascript
let user = null; // поки немає користувача
  1. Коли потрібно очистити змінну:
javascript
user = null; // видаляємо посилання на об'єкт
  1. При роботі з БД або API, де значення поля може бути «порожнім»:
javascript
user.email = null; // користувач не вказав email

null - це свідоме «ніщо», а undefined - випадкове «ніщо».


Порівняння null і undefined

Властивістьundefinednull
Тип (typeof)"undefined""object" (помилка в специфікації, але історично так залишилося)
Присвоюється автоматичноТакНі
Присвоюється вручнуРідкоЧасто
Значення за умовчаннямУ неініціалізованих зміннихНі
Використовується для «значення відсутнє»НіТак
Використовується для «значення не задано»ТакНі

Як їх порівнювати

javascript
null == undefined // true → нестроге порівняння (вони рівні за значенням) null === undefined // false → строге порівняння (різні типи)

Рекомендації щодо використання

  • Використовуй undefined для:
    • неініціалізованих змінних;
    • відсутніх аргументів функцій;
    • перевірок «чи є значення» (if (value === undefined)).
  • Використовуй null для:
    • навмисного обнулення значень;
    • позначення «значення відсутнє» в логіці програми чи API;
    • сумісності з JSON і базами даних.

Приклад:

javascript
let user; // undefined - змінна оголошена, але порожня user = null; // null - явно вказали, що користувача немає

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.