Heim >Web-Frontend >js-Tutorial >Warum gibt „typeof NaN' „Nummer' zurück?
Es mag paradox erscheinen, dass ein Wert mit der Bezeichnung „Keine Zahl“ (NaN) von als Zahl behandelt wird der Typ des Operators. Dieses Verhalten ist jedoch auf die zugrunde liegende Natur von NaN zurückzuführen.
Erstens ist NaN trotz seines Namens ein numerischer Typ. Es stellt einen ungültigen oder undefinierten numerischen Wert dar. Während alle Zahlen Näherungswerte sind und Einschränkungen unterliegen, ist NaN ein spezifischer Fall eines numerischen Werts, der nicht genau dargestellt werden kann.
Zweitens ist NaN keinem anderen Wert gleich, auch nicht sich selbst. Dies liegt daran, dass NaN kein spezifischer Wert ist, sondern ein Platzhalter für ein ungültiges oder undefiniertes Ergebnis. Daher wird der Vergleich von NaN mit sich selbst oder einem anderen Wert immer „false“ zurückgeben.
Ein Vergleich mit NaN liefert immer ein ungeordnetes Ergebnis:
NaN ist keiner Zahl gleich, auch nicht sich selbst. Dies bedeutet, dass selbst ein Vergleich von NaN mit sich selbst zu „Falsch“ führt.
Signalisierende und nicht signalisierende Vergleichsprädikate:
Einige Vergleichsoperationen, z. B. kleiner als oder größer als , kann beim Umgang mit NaN entweder eine Ausnahme auslösen oder false zurückgeben. Diese Operationen werden als signalisierende und nicht signalisierende Prädikate bezeichnet.
Testen auf NaN unter Verwendung von Gleichheit und Ungleichheit:
Da Gleichheits- und Ungleichheitstests nicht signalisierend sind, werden sie dies auch tun keine Ausnahmen auslösen. Wenn eine reguläre Zahl auf Gleichheit mit sich selbst geprüft wird, wird sie immer „true“ zurückgeben. Wenn jedoch ein NaN auf Gleichheit mit sich selbst getestet wird, wird es immer „false“ zurückgeben. Dies bietet eine praktische Möglichkeit, NaN-Werte „unauffällig“ zu erkennen.
Das obige ist der detaillierte Inhalt vonWarum gibt „typeof NaN' „Nummer' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!