Вопрос проверяет знание уникального свойства NaN и умение использовать его для проверок.
NaN — единственное значение в JavaScript, которое не равно самому себе. Поэтому проверка вида value !== value позволяет определить NaN. Такой способ работает без использования Number.isNaN. Однако он менее читаемый и используется редко в прикладном коде.
Хотя обычно используют Number.isNaN, полезно понимать, как можно определить NaN “вручную”.
Определение: NaN — единственное значение в JavaScript, для которого выражение x !== x возвращает true.
function isNaNValue(value) {
return value !== value;
}
любое нормальное значение равно самому себе
NaN !== NaN всегда true
других таких значений в языке нет
isNaNValue(NaN); // true
isNaNValue(5); // false
isNaNValue('a'); // false
работает только для NaN
менее очевиден для чтения
хуже подходит для production-кода
Вывод: проверка value !== value — валидный способ определить NaN, основанный на его уникальном свойстве, но обычно предпочтительнее Number.isNaN.