← Назад ко всем вопросам

Что такое NaN

1️⃣ Как кратко ответить

NaN (Not-a-Number) — это специальное значение в JavaScript, представляющее результат операции, которая не может быть вычислена как число. NaN является типом данных Number и используется для обозначения ошибок в числовых вычислениях.

2️⃣ Подробное объяснение темы

NaN, что расшифровывается как "Not-a-Number", — это значение, которое используется в JavaScript для обозначения результата числовой операции, которая не может быть вычислена. Это значение является частью спецификации IEEE 754 для чисел с плавающей запятой, которую использует JavaScript.

Зачем нужен NaN

NaN используется для обработки ошибок в числовых вычислениях. Например, если вы пытаетесь выполнить математическую операцию, которая не имеет смысла, как деление нуля на ноль или преобразование строки, не содержащей числовых данных, в число, результатом будет NaN.

Где применяется NaN

NaN часто встречается в следующих ситуациях:

  • Преобразование нечисловой строки в число: Number("abc") вернет NaN.
  • Математические операции, которые не имеют числового смысла: 0 / 0 или Math.sqrt(-1).

Как работает NaN

NaN имеет несколько особенностей, которые важно понимать:

  1. NaN не равен самому себе: В отличие от других значений в JavaScript, NaN не равен даже самому себе. Это означает, что NaN === NaN вернет false.

  2. Проверка на NaN: Для проверки значения на NaN используется функция isNaN(). Однако, начиная с ECMAScript 6, рекомендуется использовать Number.isNaN(), так как она более надежна и не приводит к неожиданным результатам.

  3. Тип данных: NaN является числом, что может быть неочевидно. typeof NaN вернет "number".

Пример кода

// Пример 1: Преобразование строки в число
let result1 = Number("hello"); // Преобразование нечисловой строки в число
console.log(result1); // Выводит NaN, так как "hello" не может быть преобразовано в число
​
// Пример 2: Математическая операция
let result2 = 0 / 0; // Деление нуля на ноль
console.log(result2); // Выводит NaN, так как результат не определен
​
// Пример 3: Проверка на NaN
let value = NaN;
console.log(value === NaN); // Выводит false, так как NaN не равен самому себе
​
// Правильная проверка на NaN
console.log(Number.isNaN(value)); // Выводит true, так как value действительно NaN
  • В первом примере Number("hello") пытается преобразовать строку "hello" в число, что невозможно, поэтому результатом является NaN.
  • Во втором примере 0 / 0 выполняет деление нуля на ноль, что не имеет числового смысла, поэтому результатом также является NaN.
  • В третьем примере показано, что NaN не равен самому себе, и правильный способ проверки на NaN с использованием Number.isNaN().

Тема: JavaScript
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки