Как проверить, что значение является NaN?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Существует несколько способов, самый надежный - использовать функцию Number.isNaN().
-
Number.isNaN(): Это наиболее предпочтительный способ, так как он правильно различает междуNaNи другими нечисловыми значениями, которые при преобразовании к числу даютNaN(например, объекты).// Возвращает true только для NaN console.log(Number.isNaN(NaN)); // true console.log(Number.isNaN(undefined)); // false console.log(Number.isNaN({})); // false console.log(Number.isNaN('abc')); // false console.log(Number.isNaN(null)); // false console.log(Number.isNaN(0 / 0)); // true -
isNaN()(глобальная функция): Эта функция преобразует аргумент к числу перед проверкой. Из-за этого может возвращатьtrueдля значений, которые не являютсяNaN, но не могут быть преобразованы в число. Избегайте использования для строгой проверки наNaN.// Возвращает true для NaN и некоторых нечисловых значений console.log(isNaN(NaN)); // true console.log(isNaN(undefined)); // true console.log(isNaN({})); // true console.log(isNaN('abc')); // true console.log(isNaN(null)); // false -
Сравнение с самим собой: Спецификация JavaScript гласит, что
NaNявляется единственным значением, которое не равно само себе. Этот метод надежен и работает, ноNumber.isNaN()более читабелен.// true только если значение равно NaN const value = NaN; console.log(value !== value); // true const anotherValue = 5; console.log(anotherValue !== anotherValue); // false
Рекомендуется использовать Number.isNaN() для точной проверки на NaN.