Dieser Artikel stellt hauptsächlich die Methode zum Konvertieren von JS-Strings in Zahlen vor. Jetzt kann ich ihn mit Ihnen teilen.
Es gibt viele Möglichkeiten, Strings zu konvertieren Anzahl, mir fallen 5 Arten ein! Aber es gibt immer Situationen, die die Leute überraschen. Lassen Sie uns sie hier für Ihre Bequemlichkeit zusammenfassen
Laut dem Benchmark-Test von JsPerf.com reagieren die meisten Browser am besten auf parseInt. Obwohl dies der schnellste Weg ist, stoßen Sie bei der Verwendung von preseInt auf einige häufige Fallstricke: parseInt: Wenn keine Basis übergeben wird, ist die übergebene Basis standardmäßig 10 parseInt(num, 10), andernfalls ist die übergebene Basis 10 Kennen Sie den num-Attributtyp und verwenden Sie parseInt nicht, um Zeichenfolgen in Zahlen umzuwandeln.
parseInt('043') // returns 0 部分老浏览器. parseInt('20.mp4') // returns 20
Dies ist eine sehr gute Wahl, wenn Sie keine Hexadezimalzahlen analysieren. Negative Hexadezimalziffern in Zeichenfolgen sind ein Sonderfall und wenn Sie sie mit parseFloat analysieren, ist das Ergebnis falsch. Um NaN-Situationen in Ihrem Programm zu vermeiden, sollten Sie den konvertierten Wert überprüfen.
parseInt(-0xFF) // returns -255 parseInt("-0xFF") // returns -255 parseFloat(-0xFF) // returns -255 parseFloat("-0xFF") // returns 0 parseFloat('44.jpg') // return 44
kann einen String in eine Ganzzahl umwandeln, aber es ist keine Gleitkommazahl. Wenn es sich um eine String-Konvertierung handelt, wird 0 zurückgegeben. Was ist das Prinzip? Durch Umdrehen jedes Bits, auch A1-Komplement der Zahl genannt. Sie können es verwenden, beachten Sie jedoch, dass es nur zum Speichern von Ganzzahlen verwendet werden kann. Verwenden Sie es daher im Allgemeinen nicht, es sei denn, Sie sind sicher, dass die Zahl zwischen 32-Bit-Ganzzahlen liegt (aufgrund der Spezifikation des Aufrufs von ToInt32). Bitweises NICHT: Verwenden Sie dies, um sicherzustellen, dass die Eingabe keine Zeichen enthält, nur für Ganzzahlen.
~~1.23 // returns 1 ~~"1.23" // returns 1 ~~"23" // returns 23 ~~"Hello world" // returns 0
Number hat das gleiche Problem wie die oben erwähnte Konvertierungsmethode. Beim Parsen wird versucht, die von Ihnen angegebene Nummer herauszufinden: Hinweis: 023 ist eigentlich eine Oktalzahl Zahl Zahl, egal wie Sie es machen, es gibt 19 zurück; das Gleiche gilt für Hexadezimalzahlen ohne einfache oder doppelte Anführungszeichen. Number ist auch einer der langsamsten in JsPerf.
Number("023") // returns 23 Number(023) // returns 19
"1.23" * 1 // returns 1.23 "0xFF" - 0 // returns 255 "0xFF.jpg" / 1 // returns NaN +"023" // returns 23
Der unäre Operator unterscheidet sich von anderen Parsing-Methoden. Wenn es sich um einen NaN-Wert handelt, wird auch NaN zurückgegeben. Dies ist meine Lieblingsmethode zum Konvertieren numerischer Werte, da ich nicht der Meinung bin, dass ein Objekt mit Zeichen als 0 behandelt oder anhand der Anzahl seiner Bits „erraten“ werden sollte. Ich verwende grundsätzlich den +-Operator, weil er weniger verwirrend ist. Obwohl die Verwendung von -0 auch gut ist, drückt sie die ursprüngliche Absicht der Konvertierung in eine Zahl nicht sehr gut aus.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Einführung in die asynchrone for-Schleife von js
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie eine JS-Zeichenfolge in eine Zahl. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!