Heim  >  Artikel  >  Web-Frontend  >  Was ist die Methode, um eine Zeichenfolge in eine Zahl umzuwandeln?

Was ist die Methode, um eine Zeichenfolge in eine Zahl umzuwandeln?

angryTom
angryTomOriginal
2019-07-26 09:28:2337715Durchsuche

Was ist die Methode, um eine Zeichenfolge in eine Zahl umzuwandeln?

Empfohlenes Tutorial: JS-Tutorial

JavaScript ist eine magische Sprache, Zeichenfolge Es gibt 5 Möglichkeiten, Zahlen umzuwandeln, und jede hat ihre eigenen Fallstricke! Als Nächstes stelle ich Ihnen in diesem Artikel die 5 Methoden zur Konvertierung von JavaScript-Zeichenfolgen in Zahlen und ihre Fallstricke vor. Interessierte Freunde sollten einen Blick darauf werfen

Welche soll ich wählen? Wann sollte man es wählen? Warum so etwas wählen? Wir gehen sie einzeln durch und schlüsseln die gemeinsamen Fallstricke jedes Ansatzes auf.

parseInt

Basierend auf den Benchmarks von JsPerf.com reagieren die meisten Browser am besten auf parseInt. Obwohl dies der schnellste Weg ist, stößt die Verwendung von preseInt auf einige häufige Fallstricke:

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

ParseInt: Wenn keine Basis übergeben wird, ist die Standardbasis 10 parseInt(num, 10), wenn Sie dies nicht tun Kennen Sie den Typ des Num-Attributs und verwenden Sie parseInt nicht, um einen String in eine Zahl umzuwandeln.

parseFloat

Dies ist eine sehr gute Wahl, wenn Sie keine Hexadezimalzahlen analysieren. Zum Beispiel:

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

HINWEIS: Negative Hexadezimalzahlen in -Strings 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

Sie können einen String in eine Ganzzahl umwandeln, aber es ist 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).

Bitweise NICHT: Verwenden Sie dies, um sicherzustellen, dass die Eingabe keine Zeichen enthält, nur für Ganzzahlen.

Nummer

Nummer hat das gleiche Problem wie die oben erwähnte Konvertierungsmethode. Beim Parsen wird versucht, die Nummer herauszufinden, die Sie ihr gegeben haben :

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

Hinweis: 023 ist eigentlich eine Oktalzahl, die 19 zurückgibt, egal wie Sie es machen; das Gleiche gilt für Hexadezimalzahlen ohne einfache oder doppelte Anführungszeichen.

Number ist auch einer der langsamsten in JsPerf.

Anzahl: Kaum genutzt.

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, ist der zurückgegebene Wert NaN . 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

Wenn negative hexadezimale Zahlenzeichenfolgen 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.

Das obige ist der detaillierte Inhalt vonWas ist die Methode, um eine Zeichenfolge in eine Zahl 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