← Все вопросы

Что такое undefined и null в JS и чем они отличаются?

Задан 15 месяцев назад981 просмотров4 ответа
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 месяцев назад

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект