Junior
Как да проверите дали числото е NaN?
sobes.tech AI
Отговор от 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
// Проверка за преобразуване на типове
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
Сравнението 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.