JavaScripts eigenartiges Verhalten, bei dem NaN === NaN
auf false
häufig rätselhafte Entwickler bewertet. Dieser Artikel verdeutlicht, warum dies der Fall ist und bietet korrekte Methoden zur NAN -Erkennung.
Nan
verstehennan, kurz für "Not-a-Number", bedeutet das Ergebnis ungültiger oder undefinierter mathematischer Operationen. Beispiele sind:
<code class="language-javascript">console.log(0 / 0); // NaN console.log(Math.sqrt(-1)); // NaN</code>
Warum die Ungleichheit?
Der IEEE 754-Standard für den schwebenden Punkt arithmetischen Arithmetik schreibt vor, dass Nan nichts gleich ist, einschließlich sich selbst. Dieses Design verhindert eine fehlerhafte Behandlung ungültiger Ergebnisse, als wären sie gültige numerische Werte. Im Wesentlichen fügt Nan eine Fehlerbedingung zu und ist von Natur aus unvergleichlich.
Zuverlässige NAN -Überprüfungen
direkter Vergleich fällt im Umgang mit NAN fehl. Verwenden Sie stattdessen diese Funktionen:
isNaN()
: Diese globale Funktion prüft, ob ein Wert NAN ist oder in Nan gezwungen werden kann: <code class="language-javascript">console.log(isNaN("abc")); // true</code>
Number.isNaN()
: Diese Methode bietet eine genauere Überprüfung auf NAN, wobei der Typ -Zwang vermieden wird: <code class="language-javascript">console.log(Number.isNaN(NaN)); // true</code>
In Zusammenfassung
Die NaN === NaN
-Vergleiche ergibt false
, weil Nan einen Fehlerzustand darstellt, nicht einen numerischen Wert. Um NAN genau zu erkennen, verwenden Sie isNaN()
oder Number.isNaN()
für einen robusten und zuverlässigen Code.
Quelle
Das obige ist der detaillierte Inhalt vonWarum gibt NaN === NaN in JavaScript „False' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!