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?
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 .
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)
Gleichheitsoperator (== und ===) kann nicht verwendet werden, um einen Wert gegen NaN zu testen. Verwenden Sie stattdessen Number.isNaN () oder isNaN ().
%Vor%Tags und Links javascript nan