Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: null, undefined, NaN, boolean coercion, falsy values

Чем отличается null, undefined и NaN при приведении к булевому типу?

Проверяет понимание приведения значений null, undefined и NaN к булевому типу в JavaScript.

Короткий ответ

Все три значения являются falsy, то есть при приведении к булевому типу они становятся false. Это означает, что в условных конструкциях, таких как if, они ведут себя как false. Однако важно помнить, что NaN — это числовое значение, обозначающее 'Not-a-Number', и оно не равно самому себе.

Длинный ответ

Приведение null, undefined и NaN к булевому типу

В JavaScript существует концепция falsy значений — это значения, которые при приведении к булевому типу становятся false. К ним относятся: false, 0, '' (пустая строка), null, undefined и NaN. Все три рассматриваемых значения — null, undefined и NaN — являются falsy, поэтому в логическом контексте они ведут себя одинаково.

Примеры использования

Рассмотрим простой пример с условной конструкцией:

let a = null;
let b = undefined;
let c = NaN;

if (a) {
  console.log('null is truthy');
} else {
  console.log('null is falsy'); // Выполнится
}

if (b) {
  console.log('undefined is truthy');
} else {
  console.log('undefined is falsy'); // Выполнится
}

if (c) {
  console.log('NaN is truthy');
} else {
  console.log('NaN is falsy'); // Выполнится
}

Во всех трёх случаях код войдёт в блок else, так как каждое из значений приводится к false.

Особенности NaN

Несмотря на то, что NaN ведёт себя как falsy, у него есть уникальная особенность: он не равен самому себе. Это можно проверить:

console.log(NaN === NaN); // false

Это отличает NaN от null и undefined, которые равны сами себе (null === null и undefined === undefined). Для проверки на NaN рекомендуется использовать функцию Number.isNaN().

Практическое применение

Понимание falsy значений важно при написании условных конструкций и проверок. Например, если вы хотите проверить, определена ли переменная, можно использовать if (variable), но нужно помнить, что это не сработает для значений 0 или пустой строки, так как они тоже falsy. В таких случаях лучше использовать строгие проверки на null или undefined.

Вывод

null, undefined и NaN все являются falsy, поэтому в булевом контексте они преобразуются в false. Однако NaN имеет дополнительную особенность — он не равен самому себе, что требует осторожности при проверках. Используйте эти знания для написания надёжных условий в JavaScript.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    2

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#null

#undefined

#NaN

#boolean coercion

#falsy values

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию