508 Stimmen

Was ist der Unterschied zwischen parseInt() und Number()?

Wie werden parseInt() y Number() sich bei der Umwandlung von Zeichenketten in Zahlen unterschiedlich verhalten?

-1voto

Martin Baker Punkte 1

Eine andere Möglichkeit, das Ergebnis zu erhalten, ist die Verwendung des Operators ~

Für die meisten Fälle

~~someThing === parseInt(something)

aber ~~ gibt Null für Strings zurück, die parseInt mit anderen Zeichen am Ende oder mit der spezifizierten Zahlenbasis (z.B. hex) akzeptiert und gibt auch Null zurück, wenn parseInt NaN zurückgibt. Ein weiterer Unterschied ist, dass ~~ bei einem Bigint einen Bigint zurückgibt, zu dem man einen weiteren Bigint addieren kann, während parseInt eine gewöhnliche Fließkommazahl zurückgibt (ja wirklich - es gibt genau den gleichen Wert wie parseFloat), wenn der Bigint groß ist

Unter den meisten Umständen ist ~~ jedoch 30 % schneller als parseInt. Es ist nur um 10% langsamer, wenn es sich um eine Fließkommazahl handelt, die als String dargestellt wird.

Wenn also der eingeschränkte Umfang von ~~ Ihren Bedürfnissen entspricht, dann sparen Sie dem Computer Zeit und geben Sie weniger ein

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X