Heim > Web-Frontend > js-Tutorial > Warum behandelt JavaScript 0 und -0 trotz ihrer unterschiedlichen Darstellung als gleich?

Warum behandelt JavaScript 0 und -0 trotz ihrer unterschiedlichen Darstellung als gleich?

Barbara Streisand
Freigeben: 2024-12-02 04:49:17
Original
671 Leute haben es durchsucht

Why Does JavaScript Treat  0 and -0 as Equal Despite Their Distinct Representation?

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage