Heim > Web-Frontend > js-Tutorial > Hauptteil

Warum entspricht „040' in JavaScript 32?

Mary-Kate Olsen
Freigeben: 2024-11-26 09:01:11
Original
355 Leute haben es durchsucht

Why Does `040` Equal 32 in JavaScript?

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

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