NaN (Not-A-Number) — это специальное значение в JavaScript, которое представляет результат математической операции, которая не может быть выполнена или возвращает неопределённое числовое значение.
console.log(typeof NaN); // "number"
number
)console.log(NaN === NaN); // false
isNaN(NaN); // true
isNaN("text"); // true (потому что "text" нельзя преобразовать в число)
Number.isNaN(NaN); // true (более строгая проверка)
Number.isNaN("text"); // false
isNaN()
пытается преобразовать значение в число перед проверкойNumber.isNaN()
(ES6) проверяет строго без преобразования0 / 0; // NaN
Math.sqrt(-1); // NaN
parseInt("abc"); // NaN
+"text"; // NaN
Number(undefined); // NaN
NaN + 5; // NaN
NaN * 0; // NaN
JSON.stringify({ value: NaN }); // '{"value":null}'
Boolean(NaN); // false
Number.isNaN()
вместо isNaN()
Object.is(NaN, value)
NaN — это специальное значение типа number, обозначающее недопустимую или неопределённую числовую операцию. Оно обладает уникальными особенностями поведения, которые важно учитывать при разработке на JavaScript/Node.js.