Ответ
В JavaScript null и undefined представляют разные концепции отсутствия значения.
| Критерий | undefined |
null |
|---|---|---|
| Тип | typeof undefined === 'undefined' |
typeof null === 'object' (историческая особенность языка) |
| Значение по умолчанию | Значение неинициализированных переменных, отсутствующих свойств объекта, параметров функции, которым не передали аргумент. | Явно присваиваемое значение, обозначающее "ничего", "пусто", "значение отсутствует". |
| Использование | Системное (движок JS). | Программное (разработчик). |
Примеры:
// undefined (системное)
let a;
console.log(a); // undefined
const obj = {};
console.log(obj.nonExistentProp); // undefined
function foo(x) { console.log(x); }
foo(); // undefined
// null (программное)
let b = null; // Явно указываем, что значения нет
const response = await fetch('/api/data');
const data = await response.json();
if (data.error) {
data.result = null; // Явно обнуляем результат при ошибке
}
Проверка:
// Строгая проверка (рекомендуется)
if (value === undefined) { /* только для undefined */ }
if (value === null) { /* только для null */ }
// Проверка на "nullish" (null или undefined) - ES2020
if (value == null) { /* true для null И undefined (но осторожно с ==) */ }
if (value === null || value === undefined) { /* явная и безопасная проверка */ }
const result = value ?? 'default'; // Оператор нулевого слияния (Nullish Coalescing)
Ключевое: undefined обычно означает, что значение ещё не было определено, в то время как null — это намеренное указание на отсутствие какого-либо объектного значения.
Видео-ответы
▶
РЕАЛЬНОЕ СОБЕСЕДОВАНИЕ НА FRONTEND РАЗРАБОТЧИКА С ЗП 320К! MIDDLE/SENIOR FRONTEND СОБЕС!
▶
Реальное собеседование Frontend Middle 290 gross
▶
РЕАЛЬНОЕ СОБЕСЕДОВАНИЕ НА MIDDLE FRONTEND РАЗРАБОТЧИКА | JAVASCRIPT REACT
▶
РЕАЛЬНЫЙ СОБЕС В СБЕР НА 300К. МИЛАЯ СОБЕСЕДУЮЩАЯ
▶
Собеседование ученика на Frontend-разработчика в Риглу - Часть 1
▶
Что должен знать frontend стажер в 2025? | Front-end собеседование
▶
Тестовое собеседование #2. Вопрос по JavaScript на техническом интервью Junior Frontend разработчика
▶
Тестовое собеседование #1. Вопрос по JavaScript на техническом интервью Junior Frontend разработчика
▶
Tech Interview Fest | Моковое cобеседование для Angular Junior | Solvery + Angular_ru
▶
Tech Interview Fest | Пробное собеседование React Junior | Solvery+React_js | Евгений Тройнов, Epam
▶
Собеседование cтажера Frontend разработчика.
▶
Собеседование на Junior Frontend разработчика. Стажер фронтендер 19 лет из EPAM
▶
#11 Фронтендер в 17 лет? Собеседование Frontend Junior