Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V7011. Comparison with 'NaN' is incorrect. Use 'isNaN()' or 'Number.isNaN()' method instead.

03 Апр 2026

Анализатор обнаружил, что в программе происходит сравнение значения с NaN через бинарный оператор. Поскольку NaN в JavaScript реализован в соответствии со стандартом IEEE 754, результаты сравнения NaN через оператор == или === будут всегда возвращать false. С высокой вероятностью такое сравнение в коде является ошибочным.

Рассмотрим пример:

let a = NaN;
console.log(a == NaN);  // false
console.log(a === NaN); // false

let b = "10"
console.log(b ==  NaN); // false
console.log(b === NaN); // false

Независимо от того, какое значение сравнивается с NaN, результатом проверки всегда будет false. В случае же, если в качестве оператора сравнения используется != или !==, результатом проверки всегда будет true.

Чтобы корректно проверить, является ли какое-либо значение NaN, следует использовать специальные методы isNaN() и Number.isNaN().

Рассмотрим исправленный пример:

let a = NaN;
console.log(isNaN(a));        // true
console.log(Number.isNaN(a)); // true

let b = "10"
console.log(isNaN(b)); // false
Number.isNaN(b);       // false

Следует отметить разницу между двумя этими методами.

Метод isNaN() возвращает true в том случае, если проверяемое значение равно NaN или после преобразования к числу станет NaN. Метод Number.isNaN(), в свою очередь, не производит преобразования проверяемого значения к числу. Эту разницу отображает следующий пример:

console.log(isNaN("value"));        // true
console.log(Number.isNaN("value")); // false

Испытай
удачу!

Испытай удачу —
крути колесо!

Prize circle Prize circle Outer ring

Поздравляем!
Вы получили триал на 30 дней!

Обманул систему, молодец! В качестве приза получи триал на 30 дней!