Sobes.tech
Junior

Kako proveriti da li je broj NaN?

sobes.tech АИ

Одговор од АИ

Koriste funkciju isNaN(), koja proverava da li je vrednost "Nije broj" (Not-a-Number).

// Primeri korišćenja isNaN()
console.log(isNaN(NaN));      // true
console.log(isNaN(123));      // false
console.log(isNaN('hello'));  // true, jer 'hello' ne može biti pretvoreno u broj
console.log(isNaN('123'));    // false, jer '123' može biti pretvoreno u broj 123
console.log(isNaN(undefined)); // true
console.log(isNaN(null));      // false, jer null se pretvara u 0

// Provera konverzije tipova
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true

Postoji i metoda Number.isNaN(), koja strože proverava da li je vrednost tačno NaN, bez prethodne konverzije.

// Primeri korišćenja `Number.isNaN()`
console.log(Number.isNaN(NaN));      // true
console.log(Number.isNaN(123));      // false
console.log(Number.isNaN('hello'));  // false, ne konvertuje
console.log(Number.isNaN('123'));    // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null));      // false

Poređenje NaN sa samim sobom ili bilo kojom drugom vrednošću uvek vraća false, osim kada se koristi Object.is().

// Osobina poređenja sa NaN
console.log(NaN == NaN);  // false
console.log(NaN === NaN); // false

// Poređenje pomoću Object.is()
console.log(Object.is(NaN, NaN)); // true

U zavisnosti od zadatka, može biti potrebno koristiti isNaN() (ako je važna provera nakon konverzije u broj) ili Number.isNaN() (za strogu proveru na NaN). Metoda Number.isNaN() je preferirana za preciznu proveru da li je vrednost tačno NaN.