Время чтения: 1 мин.
В JavaScript два специальных значения, null и undefined, обозначают отсутствие значения, но используются в разных контекстах. Новички часто путают их, поэтому давайте разберемся, чем они отличаются и когда применять каждое из них.
1. Что такое undefined?
undefined означает, что значение не было задано.
Когда появляется undefined?
- Переменная объявлена, но не инициализирована:
let x;
console.log(x); // undefined- Функция не возвращает значение:
function foo() {}
console.log(foo()); // undefined- Обращение к несуществующему свойству объекта:
const obj = { a: 1 };
console.log(obj.b); // undefined- Аргумент функции не передан:
function bar(a) { console.log(a); }
bar(); // undefinedТип undefined
typeof undefined возвращает "undefined":
console.log(typeof undefined); // "undefined"2. Что такое null?
null — это явное указание на отсутствие значения.
Когда используется null?
- Разработчик явно указывает, что значение отсутствует:
let y = null;
console.log(y); // null- Функция возвращает
null, если ничего не найдено:
document.getElementById("not-exist"); // nullТип null
typeof null возвращает "object" (это баг в JS, который не исправлен для совместимости):
console.log(typeof null); // "object" (но это не объект!)3. Сравнение null и undefined
- Нестрогое равенство (
==):null == undefined→true(специальное правило JS). - Строгое равенство (
===):null === undefined→false(разные типы).
console.log(null == undefined); // true
console.log(null === undefined); // false4. Когда что использовать?
undefined— когда значение отсутствует «по умолчанию» (не задано).null— когда вы явно указываете, что значение пустое.
Пример
function findUser(id) {
if (id === 1) return { name: "Alice" };
return null; // явно говорим: пользователь не найден
}
const user = findUser(999);
if (user === null) {
console.log("Пользователь не найден");
}Вывод
| Критерий | undefined | null |
|---|---|---|
| Значение | Не задано (по умолчанию) | Явно указанное отсутствие |
| Тип | "undefined" | "object" (баг в JS) |
| Использование | Переменные без значения | Явное «ничего» |
Совет:
- Используйте
null, когда хотите явно указать на отсутствие значения. undefinedобычно возникает автоматически, когда что-то не определено.
Теперь вы знаете разницу и сможете избежать ошибок в коде! 🚀


Добавить комментарий