JavaScripts Oktalgefahr: Problemumgehungen für das Fehlverhalten von parseInt
JavaScripts parseInt-Funktion kann stolpern, wenn sie auf Zahlen mit führenden Nullen stößt. Das Problem ergibt sich aus der Tendenz, führende Nullen als Oktalziffern zu interpretieren, was zu fehlerhaften Ergebnissen führt.
Beispiel:
parseInt('01'); // 1 parseInt('08'); // 0 (invalid octal digit)
Problemumgehungen:
Die einfachste Lösung besteht darin, explizit die Basis oder Wurzel der Zahl anzugeben. Dies kann mit dem zweiten Parameter von parseInt erfolgen:
parseInt('08', 10); // 8 (specifying base 10)
Alternativ kann der Zahlenkonstruktor zum Analysieren von Zahlen verwendet werden, einschließlich solcher mit Führende Nullen:
Number('08'); // 8
Ein anderer Ansatz besteht darin, den String vor dem Parsen in Basis 10 zu konvertieren:
parseInt(parseInt('08', 8).toString(), 10); // 8 (convert octal to base 10)
Reguläre Ausdrücke können verwendet werden, um führende Nullen zu entfernen:
parseInt(/^0 (.*)$/gm('008')); // 8 (match and capture non-zero digits)
Hinweis:
In der 5. Ausgabe von JavaScript (ECMA-262) hat sich das Verhalten von parseInt geändert, wodurch Folgendes beseitigt wurde das Problem der Oktalinterpretation. Aus Kompatibilitätsgründen mit älteren Versionen von JavaScript wird jedoch empfohlen, eine der oben genannten Problemumgehungen zu verwenden, wenn Zahlen mit führenden Nullen auftreten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3