Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: comparison

Как написать функцию проверки NaN без Number.isNaN?

Вопрос проверяет знание уникального свойства NaN и умение использовать его для проверок.

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

NaN — единственное значение в JavaScript, которое не равно самому себе. Поэтому проверка вида value !== value позволяет определить NaN. Такой способ работает без использования Number.isNaN. Однако он менее читаемый и используется редко в прикладном коде.

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

Хотя обычно используют Number.isNaN, полезно понимать, как можно определить NaN “вручную”.

Определение

Определение: NaN — единственное значение в JavaScript, для которого выражение x !== x возвращает true.

Реализация функции

function isNaNValue(value) {
  return value !== value;
}

Почему это работает

  • любое нормальное значение равно самому себе

  • NaN !== NaN всегда true

  • других таких значений в языке нет

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

isNaNValue(NaN); // true
isNaNValue(5);   // false
isNaNValue('a'); // false

Ограничения подхода

  • работает только для NaN

  • менее очевиден для чтения

  • хуже подходит для production-кода

Вывод: проверка value !== value — валидный способ определить NaN, основанный на его уникальном свойстве, но обычно предпочтительнее Number.isNaN.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • JavaScript

    JavaScript

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

#comparison

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