Назад к вопросам
Junior
89
questionbank
Как проверить, является ли число NaN?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Используют функцию isNaN(), которая проверяет, является ли значение "Не числом" (Not-a-Number).
// Примеры использования isNaN()
console.log(isNaN(NaN)); // true
console.log(isNaN(123)); // false
console.log(isNaN('hello')); // true, так как 'hello' не может быть приведено к числу
console.log(isNaN('123')); // false, так как '123' может быть приведено к числу 123
console.log(isNaN(undefined)); // true
console.log(isNaN(null)); // false, так как null приводится к 0
// Проверка приведения типов в isNaN()
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true
Существует также метод Number.isNaN(), который более строго проверяет именно значение NaN, не выполняя предварительное приведение к числу.
// Примеры использования Number.isNaN()
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(123)); // false
console.log(Number.isNaN('hello')); // false, не выполняет приведение к числу
console.log(Number.isNaN('123')); // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null)); // false
// Отличие от isNaN() при нечисловых аргументах
console.log(isNaN('hello')); // true
console.log(Number.isNaN('hello')); // false
Сравнение NaN с самим собой или любым другим значением всегда возвращает false, за исключением случая использования Object.is().
// Особенность сравнения с NaN
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
// Сравнение с помощью Object.is()
console.log(Object.is(NaN, NaN)); // true
В зависимости от задачи, может потребоваться isNaN() (если важна проверка после приведения к числу) или Number.isNaN() (для строгой проверки на NaN). Метод Number.isNaN() предпочтительнее для точной проверки, является ли конкретное значение именно NaN.