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.