Nach der Natur von 0 fragen: Sind 0 und -0 identisch?
Die ECMAScript 5.1-Spezifikation hat 0 und -0 als unterschiedlich definiert Entitäten. Dies wirft die Frage auf: Warum gibt 0 === -0 dann true zurück?
IEEE 754 enthüllt die Existenz von vorzeichenbehafteten Nullen
JavaScript verwendet den IEEE 754-Standard, um repräsentieren Zahlen. Der Standard führt das Konzept der „vorzeichenbehafteten Null“ ein, bei dem sowohl -0 als auch 0 erkannt werden. Es handelt sich um eine Variation der erweiterten reellen Zahlenlinie, die die Existenz unterschiedlicher Interpretationen der Unendlichkeit zulässt (1/−0 = −∞ und 1/ 0 = ∞).
Theoretische Unterscheidung, praktische Gleichheit
Während 0 und -0 in der Javascript-Darstellung theoretisch unterschiedlich sind, ist der Strict Equality-Vergleichsalgorithmus in Abschnitt 11.9.6 schreibt ausdrücklich vor, dass 0 und -0 zu Vergleichszwecken als gleich betrachtet werden. Diese Entscheidung wurde getroffen, um die Codierung zu vereinfachen und unnötige Komplexität zu vermeiden.
Ein Hinweis zu Object.is
Mit der Einführung von ES2015 wurde eine neue Vergleichsmethode eingeführt: Object .Ist. Es unterscheidet explizit zwischen -0 und 0, wie in Object.is(-0, 0); // FALSCH. Diese Methode wird jedoch im Allgemeinen nur für bestimmte Fälle empfohlen, in denen die Unterscheidung zwischen vorzeichenbehafteten Nullen entscheidend ist.
Das obige ist der detaillierte Inhalt vonWarum behandelt JavaScript 0 und -0 trotz ihrer unterschiedlichen Darstellung als gleich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!