← Все вопросы
Что такое undefined и null в JS и чем они отличаются?
18
Постоянно вижу и undefined, и null. Это же оба «ничего». В чём разница и когда что появляется?
4 ответа
33
✓ Принятый ответ — помог автору
Простыми словами:
undefined— «значение не задано» системой. Объявил переменную и не присвоил, обратился к несуществующему свойству, функция ничего не вернула — вездеundefined.null— «пусто» намеренно, ты сам кладёшь его как «здесь специально ничего нет».
let x;
console.log(x); // undefined (сам не задал)
const obj = {};
console.log(obj.name); // undefined (нет такого свойства)
let user = null; // null — я осознанно сказал «юзера нет»
И забавный момент: typeof null возвращает "object" — это историческая бага языка, которую так и не починили.
Никита Пименов про typeof null прям спасибо, чуть не споткнулся · 15 месяцев назад
14
Грубо: undefined ставит сам JS, null ставишь ты руками.
8
null == undefined это true, но null === undefined это false. Запомни на всякий.
-4
Они одинаковые по сути.
Дмитрий Семочкин не одинаковые, выше хорошо разобрали · 14 месяцев назад
Ваш ответ
Войдите, чтобы ответить на вопрос.