Sobes.tech
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.