549 Stimmen

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

Ich habe es nur in der JavaScript-Konsole von Firefox versucht, aber keine der folgenden Anweisungen gibt true zurück:

parseFloat('geoff') == NaN;

parseFloat('geoff') == Number.NaN;

5voto

d2vid Punkte 1813

Ich benutze Unterstreichungen isNaN Funktion, weil in JavaScript:

isNaN(undefined) 
-> true

Seien Sie sich zumindest dieser Gefahr bewusst.

4voto

MD SHAYON Punkte 6992

Die Funktion isNaN() bestimmt, ob ein Wert NaN ist oder nicht. Da die Beeinflussung innerhalb der isNaN-Funktion überraschend sein kann, sollten Sie alternativ Number.isNaN() verwenden.

isNaN(123) //false
isNaN(-1.23) //false
isNaN(5-2) //false
isNaN(0) //false
isNaN('123') //false
isNaN('Hello') //true
isNaN('2005/12/12') //true
isNaN('') //false
isNaN(true) //false
isNaN(undefined) //true
isNaN('NaN') //true
isNaN(NaN) //true
isNaN(0 / 0) //true
isNaN(null) //false

Der Komfort einer isNaN-Funktion Im Gegensatz zu allen anderen möglichen Werten in JavaScript ist es nicht möglich, die Gleichheitsoperatoren (== und ===) zu verwenden, um einen Wert mit NaN zu vergleichen, um festzustellen, ob der Wert NaN ist oder nicht, da sowohl NaN == NaN als auch NaN === NaN den Wert false ergeben. Die Funktion isNaN() bietet eine bequeme Gleichheitsprüfung für NaN.

4voto

Pierfrancesco Punkte 493

Vielleicht auch dies:

function isNaNCustom(value){
    return value.toString() === 'NaN' && 
           typeof value !== 'string' && 
           typeof value === 'number'
}

3voto

MURATSPLAT Punkte 4290
NaN === NaN;        // false
Number.NaN === NaN; // false
isNaN(NaN);         // true
isNaN(Number.NaN);  // true

Gleichheitsoperatoren (== und ===) können nicht verwendet werden, um einen Wert auf NaN zu testen.

Blick auf Mozilla-Dokumentation Die globale Eigenschaft NaN ist ein Wert, der Not-A-Numbe

Der beste Weg ist die Verwendung von 'isNaN()', die eine eingebaute Funktion zur Überprüfung von NaN ist. Alle Browser unterstützen den Weg..

3voto

Stephan Ahlf Punkte 2993

Es scheint, dass isNaN() in Node.js nicht von Haus aus unterstützt wird.
Ich arbeitete mit

var value = 1;
if (parseFloat(stringValue)+"" !== "NaN") value = parseFloat(stringValue);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X