Zahl mit führender Null in JavaScript: Das Geheimnis entschlüsseln
Stellen Sie sich vor, Sie stoßen auf den folgenden Code in JavaScript:
var num = 040; console.log(num); // 32
Verwundert fragen Sie sich vielleicht, wie 40 gleich 32 ist. Die Antwort liegt in der Bedeutung des Anführers Null.
In den frühen Versionen von JavaScript bezeichneten führende Nullen in numerischen Literalen Oktalzahlen (Basis 8), ähnlich dem führenden 0x für Hexadezimalzahlen. Somit wurde „040“ als 4x8^1 0x8^0 = 32 interpretiert.
Diese Vorgehensweise erwies sich jedoch als verwirrend und wurde in ECMAScript 3 auf eine optionale Erweiterung herabgestuft. Modernes JavaScript erzwingt den strikten Modus, in dem führende Nullen vorkommen Dezimalliterale sind aus Konsistenzgründen verboten.
ECMAScript 6 führte neue Möglichkeiten zur Darstellung von Oktal- und Binärzahlen ein 0o- bzw. 0b-Präfixe. Das alte Oktalformat mit führenden Nullen (010) wurde im strikten Modus zu einem Syntaxfehler.
Daher gibt der obige Code jetzt im strikten Modus einen Syntaxfehler zurück. Wenn man Zahlen zur Basis 8 analysieren möchte, kann man die empfohlenen 0o-Präfixe verwenden oder parseInt wie folgt verwenden:
parseInt('010', 8); // Returns 8
Um sicherzustellen, dass Dezimalzahlen korrekt analysiert werden, entfernen Sie führende Nullen oder verwenden Sie parseInt.
Zusammenfassend ist das Verständnis der historischen Bedeutung führender Nullen in den numerischen Literalen von JavaScript entscheidend für das Verständnis seines Verhaltens und Code richtig interpretieren.
Das obige ist der detaillierte Inhalt vonWarum entspricht „040' in JavaScript 32?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!