Что такое 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 имеет несколько особенностей, которые важно понимать:
-
NaN не равен самому себе: В отличие от других значений в JavaScript, NaN не равен даже самому себе. Это означает, что
NaN === NaNвернетfalse. -
Проверка на NaN: Для проверки значения на NaN используется функция
isNaN(). Однако, начиная с ECMAScript 6, рекомендуется использоватьNumber.isNaN(), так как она более надежна и не приводит к неожиданным результатам. -
Тип данных: 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().
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться