Heim  >  Artikel  >  Web-Frontend  >  Wie konvertiere ich einen String in eine Zahl in js? Zusammenfassung von 5 Möglichkeiten, mit js Zeichenfolgen in Zahlen umzuwandeln

Wie konvertiere ich einen String in eine Zahl in js? Zusammenfassung von 5 Möglichkeiten, mit js Zeichenfolgen in Zahlen umzuwandeln

不言
不言Original
2018-07-20 14:26:274896Durchsuche

Es gibt viele Möglichkeiten, Zeichenfolgen in js in Zahlen umzuwandeln, aber welche Methode ist die am besten geeignete? Hier werde ich fünf Methoden zum Konvertieren von Zeichenfolgen in Zahlen vorstellen und jede Methode analysieren.

parseInt(num); // Standardmodus (keine Basis)
parseInt(num, 10); // Basis übergeben (Zehner)
parseFloat(num) // Gleitkommazahl
Number(num); // Zahlenkonstruktor
~~num // Bitweise Notation
num / 1 // Eine Zahl dividieren
num * 1 // Eine Zahl multiplizieren
num - 0 / / Subtrahiere 0
+num // Unärer Operator „+“

Verwendung von parseInt in js:

Laut dem Benchmark-Test von JsPerf.com die meisten Browser reagieren am besten auf parseInt. Obwohl dies der schnellste Weg ist, werden Sie bei der Verwendung von preseInt auf einige häufige Fallstricke stoßen:

parseInt('08') // returns 0 部分老浏览器.
parseInt('44.jpg') // returns 44

parseInt: Wenn keine Basis übergeben wird, ist die Standardeinstellung, dass die übergebene Basis 10 parseInt(num, 10) ist. Wenn Sie den Typ des Num-Attributs nicht kennen, verwenden Sie parseInt nicht, um eine Zeichenfolge in eine Zahl umzuwandeln.

Verwendung von parseFloat in js:

Wenn Sie keine Hexadezimalzahlen analysieren, ist dies eine sehr gute Wahl. Beispiel:

parseInt(-0xFF) // returns -255
parseInt("-0xFF") // returns -255
parseFloat(-0xFF) // returns -255
parseFloat("-0xFF") // returns 0

Hinweis: 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.

parseFloat('44.jpg') // return 44

parseFloat: Seien Sie vorsichtig beim Konvertieren von Hexadezimalzahlen. Wenn Sie den Typ des Objekts, das Sie konvertieren möchten, nicht kennen, verwenden Sie parseFloat nicht.

Bitweise nicht in js:

kann einen String in eine Ganzzahl umwandeln, ist aber keine Gleitkommazahl. Wenn es sich um eine String-Konvertierung handelt, wird 0 zurückgegeben;

~~1.23 // returns 1
~~"1.23" // returns 1
~~"23" // returns 23
~~"Hello world" // returns 0

Was ist das Prinzip dahinter? 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.

Verwendung von Number in js:

Number hat das gleiche Problem wie die oben erwähnte Konvertierungsmethode. Beim Parsen wird versucht, die von Ihnen angegebene Nummer herauszufinden:

Number("023") // returns 23
Number(023) // returns 19

Hinweis: 023 ist eigentlich eine Oktalzahl, und 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.

Anzahl: Kaum genutzt.

Verwendung des unären Operators in js:

"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, gibt er NaN zurück. 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. Die Verwendung von -0 ist zwar in Ordnung, vermittelt jedoch nicht ganz die Absicht der Konvertierung in eine Zahl.

Zusammenfassung, wie Zeichenfolgen in Zahlen umgewandelt werden:

Negative Hexadezimalzahlen, wenn Zeichenfolgen in Zahlen umgewandelt werden. Alles, was zuerst in einen String konvertiert werden sollte (z. B. über + "" ) und dann mit unären Operatoren oder parseInt mit Radix in eine Zahl geparst wird. Wenn das Ergebnis jedoch kein NaN-Wert ist, ist es sinnvoller, parseFloat zu verwenden.

Verwandte Empfehlungen:

js-Code zum Konvertieren von Zeichenfolgen in Zahlen_Javascript-Fähigkeiten

js parseInt Konvertieren von Zeichenfolgen Die ersten paar Zahlen sind konvertiert in int

Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen String in eine Zahl in js? Zusammenfassung von 5 Möglichkeiten, mit js Zeichenfolgen in Zahlen umzuwandeln. 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