Sobes.tech
Junior

Wie überprüft man, ob eine Zahl NaN ist?

sobes.tech KI

Antwort von AI

Verwenden Sie die Funktion isNaN(), die überprüft, ob der Wert "Keine Zahl" (Not-a-Number) ist.

// Beispiele für die Verwendung von isNaN()
console.log(isNaN(NaN));      // true
console.log(isNaN(123));      // false
console.log(isNaN('hello'));  // true, da 'hello' nicht in eine Zahl umgewandelt werden kann
console.log(isNaN('123'));    // false, da '123' in die Zahl 123 umgewandelt werden kann
console.log(isNaN(undefined)); // true
console.log(isNaN(null));      // false, da null zu 0 konvertiert wird

// Typumwandlungsprüfung bei isNaN()
console.log(Number('hello')); // NaN
console.log(isNaN(Number('hello'))); // true

Es gibt auch die Methode Number.isNaN(), die strenger überprüft, ob der Wert genau NaN ist, ohne vorherige Typumwandlung.

// Beispiele für die Verwendung von Number.isNaN()
console.log(Number.isNaN(NaN));      // true
console.log(Number.isNaN(123));      // false
console.log(Number.isNaN('hello'));  // false, keine Typumwandlung
console.log(Number.isNaN('123'));    // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null));      // false

// Unterschied zu isNaN() bei nicht numerischen Argumenten
console.log(isNaN('hello'));      // true
console.log(Number.isNaN('hello')); // false

Der Vergleich NaN mit sich selbst oder einem anderen Wert liefert immer false, außer bei Verwendung von Object.is().

// Besonderheit beim Vergleich mit NaN
console.log(NaN == NaN);  // false
console.log(NaN === NaN); // false

// Vergleich mit Object.is()
console.log(Object.is(NaN, NaN)); // true

Je nach Aufgabe kann es notwendig sein, isNaN() (wenn die Überprüfung nach Typumwandlung wichtig ist) oder Number.isNaN() (für eine strenge Überprüfung auf NaN) zu verwenden. Die Methode Number.isNaN() ist vorzuziehen, um genau zu prüfen, ob ein Wert tatsächlich NaN ist.