Sind 0 und -0 in JavaScript gleich?
Trotz der Unterscheidung in der ECMAScript 5.1-Spezifikation werden 0 und -0 als ausgewertet true unter Verwendung strikter Gleichheit in JavaScript.
Warum? das?
JavaScript übernimmt den IEEE 754-Standard für die numerische Darstellung. Nach diesem Standard kann eine vorzeichenbehaftete Null in zwei Formen vorliegen: 0 (positive Null) und -0 (negative Null). Eine Division durch 0 oder -0 ergibt jedoch ∞ bzw. -∞ und nicht undefiniert.
Technisch gesehen ist diese Unterscheidung zwischen 0 und -0 entscheidend. Allerdings bietet JavaScript in seinem strikten Gleichheitsalgorithmus eine Ausnahme. In Abschnitt 11.9.6 heißt es ausdrücklich, dass 0 und -0 bei strikten Gleichheitsvergleichen als gleich behandelt werden.
Diese Ausnahme steht im Einklang mit der logischen Vorstellung, 0 und -0 als gleichwertig zu behandeln. Darüber hinaus vereinfacht es die Entwicklung, da diese Unterscheidung nicht mehr im Code berücksichtigt werden muss.
Hinweis:
ES2015 führte Object.is als neue Vergleichsmethode ein. Im Gegensatz zu den losen und strikten Gleichheitsoperatoren unterscheidet Object.is ausdrücklich zwischen 0 und -0:
Object.is(-0, +0); // false
Das obige ist der detaillierte Inhalt vonWerden 0 und -0 in JavaScript als gleich betrachtet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!