Что такое NaN в JavaScript?
NaN расшифровывается как Not-a-Number — "не число".
Это специальное значение в JavaScript, которое означает, что результат операции не является допустимым числом.
NaNимеет числовой тип (typeof NaN === "number"), но при этом не является числом в классическом смысле.
Когда возникает NaN
NaN появляется в следующих ситуациях:
const result1 = 0 / 0;           // NaN
const result2 = Math.sqrt(-1);   // NaN
const result3 = parseInt("abc"); // NaN
const result4 = "hello" - 5;     // NaN
Особенности NaN
- NaN !== NaN→- trueЭто одна из самых странных особенностей JavaScript:- NaNникогда не равен даже самому себе.
console.log(NaN === NaN); // false
- Чтобы проверить, является ли значение NaN, нужно использовать специальные методы.
Как правильно проверять на NaN
| Метод | Особенности | 
|---|---|
| isNaN(value) | Преобразует значение к числу, затем проверяет | 
| Number.isNaN(value) | Строгая проверка без преобразования — предпочтительнее | 
Пример:
isNaN("hello"); // true — потому что "hello" → NaN
Number.isNaN("hello"); // false — строка не NaN
Number.isNaN(NaN); // true
Важно:
Никогда не сравнивайте NaN с помощью ===. Используйте Number.isNaN() для точной проверки.
Вывод
- NaN— это значение типа number, означающее невалидное числовое выражение.
- Он не равен сам себе, что делает его особенным.
- Для проверки используйте Number.isNaN(), а не=== NaN.
- Всегда проверяйте входные данные при математических операциях, чтобы избежать NaN.