Проверка на NaN

Почему если ввести не число, оно всё равно проходит проверку на NaN?

let property = +prompt("Enter a number", "0");

if (property === NaN) {
    alert("Error");
} else if (property > 0) {
    alert(1);
} else if (property < 0) {
    alert(-1);
} else if (property == 0) {
    alert(0);
}

Ответы (1 шт):

Автор решения: Grundy

Согласно спецификации NaN !== NaN.

Для проверки нужно использовать либо метод isNaN, либо Number.isNaN либо Object.is

console.log(NaN === NaN);
console.log(NaN == NaN);
console.log(isNaN(NaN));
console.log(Number.isNaN(NaN));
console.log(Object.is(NaN, NaN));

→ Ссылка