Junior
Wie wird eine Zeichenkette in JavaScript in eine Zahl umgewandelt?
sobes.tech KI
Antwort von AI
In JavaScript kann die Umwandlung eines Strings in eine Zahl auf verschiedene Arten erfolgen:
-
Implizite Typumwandlung:
- Mathematische Operatoren: zum Beispiel das unäre Plus
+oder Subtraktion-.
// Implizite Umwandlung mit unärem Plus let str = "123"; let num = +str; // num = 123 (Zahl)- Arithmetische Operationen: Bei Verwendung arithmetischer Operatoren versucht JavaScript, die Operanden in Zahlen umzuwandeln.
// Implizite Umwandlung bei Subtraktion let str1 = "10"; let str2 = "5"; let result = str1 - str2; // result = 5 (Zahl) - Mathematische Operatoren: zum Beispiel das unäre Plus
-
Explizite Typumwandlung:
parseInt(string, radix): Wandelt einen String in eine ganze Zahl um. Es wird empfohlen, das zweite Argumentradix(Stellenwert des Zahlensystems) anzugeben, um unerwartete Verhaltensweisen zu vermeiden.
// Explizite Umwandlung mit parseInt let strInt = "42px"; let numInt = parseInt(strInt, 10); // numInt = 42 (Ganzzahl) let strBinary = "101"; let numBinary = parseInt(strBinary, 2); // numBinary = 5 (Ganzzahl)parseFloat(string): Wandelt einen String in eine Gleitkommazahl um. Der String wird bis zum ersten nicht-numerischen Zeichen oder Punkt geparst.
// Explizite Umwandlung mit parseFloat let strFloat = "3.14abc"; let numFloat = parseFloat(strFloat); // numFloat = 3.14 (Gleitkommazahl)Number(value): Wandelt jeden Wert in eine Zahl um. Es ist ein strengerer Ansatz im Vergleich zuparseIntundparseFloat. Wenn der String nicht vollständig in eine Zahl umgewandelt werden kann, wirdNaNzurückgegeben.
// Explizite Umwandlung mit Number let strNum = "123.45"; let numFromNumber = Number(strNum); // numFromNumber = 123.45 (Zahl) let strInvalid = "hello"; let numInvalid = Number(strInvalid); // numInvalid = NaN
Unterschiede und Eigenschaften:
| Methode | Beschreibung | Gibt bei ungültigem String NaN zurück | Parst vom Anfang bis zum ersten Nicht-Zahl-Zeichen |
|---|---|---|---|
+string |
Implizite Umwandlung mit unärem Plus. | NaN |
Nein (gesamter String) |
string - 0 |
Implizite Umwandlung bei Subtraktion. | NaN |
Nein (gesamter String) |
parseInt() |
Parst eine ganze Zahl. | NaN |
Ja |
parseFloat() |
Parst eine Gleitkommazahl. | NaN |
Ja |
Number() |
Explizite Umwandlung. Strenger. | NaN |
Nein (gesamter String) |
Die Wahl der Methode hängt von der konkreten Aufgabe und dem erwarteten Format des Eingabestrings ab. Number() ist die bevorzugte Methode für die Umwandlung von Strings, die ganze oder Dezimalzahlen ohne zusätzliche Zeichen darstellen. parseInt() und parseFloat() sind nützlich, um numerische Werte aus Strings zu extrahieren, die zusätzliche Symbole enthalten (z.B. Maßeinheiten). Implizite Umwandlungen sollten mit Vorsicht verwendet werden, wobei ihr Verhalten verstanden werden sollte.