Sobes.tech
Junior

Hogyan ellenőrizhetjük, hogy egy szám NaN-e?

sobes.tech MI

Válasz az MI-től

Az isNaN() függvényt használják, amely ellenőrzi, hogy az érték "Nem szám" (Not-a-Number).

// Példák az isNaN() használatára
console.log(isNaN(NaN));      // true
console.log(isNaN(123));      // false
console.log(isNaN('hello'));  // true, mert a 'hello' nem konvertálható számmá
console.log(isNaN('123'));    // false, mert a '123' számmá konvertálható
console.log(isNaN(undefined)); // true
console.log(isNaN(null));      // false, mert a null 0-ként konvertálódik

// Típuskonverzió ellenőrzése
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true

Szintén létezik a Number.isNaN() metódus, amely szigorúbban ellenőrzi, hogy az érték pontosan NaN-e, anélkül, hogy előzetes konverziót végezne.

// `Number.isNaN()` példák
console.log(Number.isNaN(NaN));      // true
console.log(Number.isNaN(123));      // false
console.log(Number.isNaN('hello'));  // false, nem konvertál
console.log(Number.isNaN('123'));    // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null));      // false

A NaN összehasonlítása saját magával vagy bármely más értékkel mindig false eredményt ad, kivéve az Object.is() használatát.

// A NaN összehasonlásának sajátossága
console.log(NaN == NaN);  // false
console.log(NaN === NaN); // false

// Az `Object.is()` használata
console.log(Object.is(NaN, NaN)); // true

A feladattól függően lehet, hogy szükséges az isNaN() (ha fontos a konverzió utáni ellenőrzés), vagy a Number.isNaN() (ha szigorúbb ellenőrzésre van szükség). A Number.isNaN() módszer az előbbihez képest pontosabb, ha pontosan NaN értéket akarunk ellenőrizni.