Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «У чому різниця між null і undefined?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**`undefined`** - значення «не визначено»: змінна існує, але в ній нічого не зберігається і воно зазвичай створюється автоматично рушієм JS. **`null`** - значення «порожньо», яке свідомо призначає сам розробник. **Ключове:** `null` - це свідоме «ніщо», а `undefined` - випадкове «ніщо».Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення## `undefined` **Що це:** Значення «не визначено». Означає, що **змінна існує, але в ній нічого не зберігається**. **Коли з'являється:** 1. Якщо змінна оголошена, але **не ініціалізована**: ```javascript let user; console.log(user); // undefined ``` 2. Якщо функція **нічого не повертає**: ```javascript function greet() {} console.log(greet()); // undefined ``` 3. Якщо звертаєшся до **неіснуючої властивості об'єкта**: ```javascript const obj = {}; console.log(obj.age); // undefined ``` > `undefined` зазвичай створюється **автоматично** рушієм JS, а не вручну. --- ## `null` **Що це:** Значення «порожньо» або «нічого немає», яке **призначає сам розробник**. **Коли використовувати:** 1. Коли хочеш **явно показати**, що значення **відсутнє**: ```javascript let user = null; // поки немає користувача ``` 2. Коли потрібно **очистити змінну**: ```javascript user = null; // видаляємо посилання на об'єкт ``` 3. При роботі з БД або API, де значення поля може бути «порожнім»: ```javascript user.email = null; // користувач не вказав email ``` > `null` - це **свідоме «ніщо»**, а `undefined` - **випадкове «ніщо»**. --- ## Порівняння `null` і `undefined` | Властивість | `undefined` | `null` | |---|---|---| | Тип (`typeof`) | `"undefined"` | `"object"` *(помилка в специфікації, але історично так залишилося)* | | Присвоюється автоматично | Так | Ні | | Присвоюється вручну | Рідко | Часто | | Значення за умовчанням | У неініціалізованих змінних | Ні | | Використовується для «значення відсутнє» | Ні | Так | | Використовується для «значення не задано» | Так | Ні | --- ## Як їх порівнювати ```javascript null == undefined // true → нестроге порівняння (вони рівні за значенням) null === undefined // false → строге порівняння (різні типи) ``` --- ## Рекомендації щодо використання - Використовуй `undefined` для: - неініціалізованих змінних; - відсутніх аргументів функцій; - перевірок «чи є значення» (`if (value === undefined)`). - Використовуй `null` для: - навмисного обнулення значень; - позначення «значення відсутнє» в логіці програми чи API; - сумісності з JSON і базами даних. --- **Приклад:** ```javascript let user; // undefined - змінна оголошена, але порожня user = null; // null - явно вказали, що користувача немає ```Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.