Heim  >  Artikel  >  Web-Frontend  >  So konvertieren Sie eine JS-Zeichenfolge in eine Zahl

So konvertieren Sie eine JS-Zeichenfolge in eine Zahl

不言
不言Original
2018-07-09 14:52:341817Durchsuche

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

parseInt

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

parseFloat

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

Bitweise nicht

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

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

Unärer Cloud-Operator

"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!

Stellungnahme:
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