Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: nan, ieee

Почему сравнение аргумента с самим собой помогает определить NaN?

Вопрос проверяет понимание математической природы NaN и того, как это отражено в JavaScript.

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

Потому что NaN по стандарту IEEE 754 не равно никакому значению, включая самого себя. Это поведение специально заложено в спецификацию. Все остальные значения в JavaScript равны самим себе. Поэтому сравнение значения с самим собой позволяет надёжно выявить NaN.

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

Поведение NaN кажется странным, но оно логично с точки зрения стандарта чисел с плавающей точкой.

Определение

Определение: IEEE 754 — стандарт представления чисел с плавающей точкой, используемый в JavaScript.

Матемическая идея

NaN означает “результат не определён”. Он не представляет конкретное число, поэтому:

  • NaN == NaN → false

  • NaN === NaN → false

Связь с проверкой

Любое значение x в JavaScript:

  • x === x → true

  • кроме NaN

Отсюда и возникает проверка:

value !== value

Практическая ценность

  • позволяет реализовать проверку без встроенных функций

  • используется в low-level коде

  • полезно для понимания языка, а не как основной приём

Вывод: сравнение аргумента с самим собой работает для определения NaN, потому что NaN — единственное значение, не равное самому себе.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • JavaScript

    JavaScript

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

#nan

#ieee

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