Back to questions
Junior
88
questionbank
Как проверить, является ли число NaN?
Sobes Copilot
Get answers in real time
Answer from AI
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.