Was ist das reservierte Schlüsselwort für NaN in Javascript?

8

Wenn ich das Ergebnis eines Ausdrucks testen möchte, würde die Funktion NaN zurückgeben wie würde ich das überprüfen?
Beispiele:
$('amount').value.toInt()!='NaN'
^ funktioniert nicht und ich nehme an, dass der zurückgegebene Wert keine Zeichenkette ist,
$('amount').value.toInt()!=NaN
^ scheint auch nicht zu funktionieren und dieser scheint offensichtlich zu sein Wie überprüfe ich, ob der zurückgegebene Wert keine Zahl ist?

    
lock 18.02.2009, 04:02
quelle

3 Antworten

36

Der NaN-Wert ist so definiert, dass er für alles, einschließlich sich selbst, ungleich ist. Testen Sie mit der Funktion isNaN() , ob ein Wert NaN ist genug. (ECMAScript 6 fügt eine Funktion Number.isNan() mit unterschiedlicher Semantik hinzu für Nicht-Zahl-Argumente, aber es wird nicht in allen Browsern noch ab 2015 unterstützt).

Es gibt zwei integrierte Eigenschaften, die mit einem NaN-Wert verfügbar sind: das globale NaN -Eigenschaft (dh window.NaN in Browsern) und Number.NaN . Es ist nicht ein Sprachschlüsselwort. In älteren Browsern könnte die Eigenschaft NaN überschrieben werden, was möglicherweise verwirrende Ergebnisse zur Folge hätte, aber mit ECMAScript 5 Standard wurde es nicht schreibbar gemacht .

  • Wie @some in den Kommentaren darauf hingewiesen hat, gibt es auch die globale Funktion isFinite () , die nützlich sein kann.
Miles 18.02.2009, 04:04
quelle
2

Der beste Weg, um das Ergebnis der numerischen Operation gegen NaN zu überprüfen, besteht darin, auf diese Weise vorzugehen, Beispiel:

%Vor%

und es ist fertig.

Der Trick ist, dass NaN nicht mit anderen Werten verglichen werden kann, selbst wenn es selbst ist (NaN! = NaN ist immer wahr, also können wir das ausnutzen und das Ergebnis mit sich selbst vergleichen)

das ist JavaScript (eine gute und bizarre Sprache)

    
Ismail 23.09.2014 15:58
quelle
1

Gleichheitsoperator (== und ===) kann nicht verwendet werden, um einen Wert gegen NaN zu testen. Verwenden Sie stattdessen Number.isNaN () oder isNaN ().

%Vor%     
Hemerson Varela 13.05.2014 15:51
quelle

Tags und Links