Das Rätsel von NaN: Warum gibt es „Number“ in Typeof zurück?
Trotz seines Namens ist „Not a Number“ (NaN ) fällt dieser rätselhafte Wert in den Bereich der numerischen Typen. Dieses eigenartige Verhalten kann auf die interne Darstellung numerischer Daten in JavaScript zurückgeführt werden.
NaN stellt einen bestimmten Wert dar, der außerhalb der Einschränkungen des numerischen Typs liegt. Während alle Zahlen, einschließlich derjenigen, die gerundet werden müssen, möglicherweise ähnlichen Einschränkungen unterliegen, stellt NaN aufgrund seiner spezifischen Bezeichnung einen Einzelfall dar.
Der offensichtliche Widerspruch, dass NaN ein Zahlentyp ist, wird noch faszinierender, wenn man Vergleiche mit NaN betrachtet . Entgegen den Erwartungen werden unterschiedliche NaN-Werte als unterschiedlich behandelt, was dazu führt, dass sie selbst im Vergleich zu sich selbst als ungleich gelten.
Zur weiteren Verdeutlichung klassifiziert JavaScript Vergleiche entweder als „signalisierend“ oder „nicht signalisierend“. Signalisierungsvergleiche lösen eine Ausnahme aus, wenn NaN beteiligt ist, während Nicht-Signalisierungsvergleiche einfach „false“ zurückgeben. Diese Unterscheidung wird in Gleichheits- und Ungleichheitstests deutlich, bei denen x == x als falsch ausgewertet wird, wenn x ein „ruhiges NaN“ ist.
Letztendlich ist dies der Grund für die Klassifizierung von NaN als Zahlentyp und sein einzigartiges Verhalten bei Vergleichen läuft auf die zugrunde liegende numerische Darstellung von JavaScript und sein Engagement für die Unterscheidung zwischen verschiedenen NaN-Werten hinaus. Das Verständnis dieser Nuancen ist für eine effektive JavaScript-Programmierung von entscheidender Bedeutung und ermöglicht es Entwicklern, sich in den Feinheiten von Datentypen und Vergleichen zurechtzufinden.
Das obige ist der detaillierte Inhalt vonWarum gibt JavaScripts NaN „Number' in „typeof' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!