JavaScript/Objekte/Number/NaN

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Die Eigenschaft NaN ist ein vordefinierter Wert und bedeutet "not a number". Dieser Wert kann z. B. als Rückgabewert für ungültige Zahlen verwendet werden. Sie finden NaN sowohl als globalen Wert wie auch als Eigenschaft des Number-Objekts.

NaN hat die besondere Eigenschaft, dass es von jedem anderen Wert in JavaScript verschieden ist, sogar von sich selbst. Die arithmetischen Vergleichsoperatoren liefern deshalb grundsätzlich false, wenn einer der Operanden NaN ist. Die Ausnahme ist natürlich !=, der immer true liefert.

Beispiel
<html> <head> <title>Test</title> <script type="text/javascript"> var Zahl_1 = "3a"; var Zahl_2 = "3"; if (Zahl_1 != 3) Zahl_1 = Number.NaN; if (Zahl_2 != 3) Zahl_2 = Number.NaN; alert(Zahl_1); alert(Zahl_2); </script> </head> <body> </body> </html>

Das Beispiel definiert zwei Variablen Zahl_1 und Zahl_2. Dabei wird Zahl_1 mit dem Wert 3a vorbelegt, Zahl_2 mit dem Wert 3. Anschließend wird für beide Variablen abgefragt, ob die Variable ungleich der Zahl 3 ist. Wenn ja, also wenn der Wert nicht 3 ist, wird der entsprechenden Variablen die Eigenschaft Number.NaN (keine gültige Zahl) zugewiesen. Abschließend werden beide Variableninhalte ausgegeben. Zahl_1 hat nun den Wert NaN, weil es ungleich 3 war und deshalb die Eigenschaft NaN zugewiesen bekam. Zahl_2 dagegen speichert den Wert 3, da es als gültige Zahl 3 anerkannt wurde – obwohl sie bei der Initialisierung die 3 als Zeichenkette zugewiesen bekam: hier greift die interne automatische Typumwandlung in JavaScript.

Beachten Sie: Mit der Eigenschaft Number.NaN können Sie nicht die Gültigkeit einer Zahl prüfen, sondern ihr nur die Eigenschaft keine gültige Zahl zuweisen. Die Gültigkeit einer Zahl können Sie mit der Methode isNaN() prüfen.