Проверка на 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));