Wie werden parseInt()
y Number()
sich bei der Umwandlung von Zeichenketten in Zahlen unterschiedlich verhalten?
Antwort
Zu viele Anzeigen?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
- See previous answers
- Weitere Antworten anzeigen