Junior
Hoe wordt een string in JavaScript omgezet in een getal?
sobes.tech AI
Antwoord van AI
In JavaScript kan de conversie van een string naar een nummer op verschillende manieren worden uitgevoerd:
-
Impliciete typeconversies:
- Wiskundige operatoren: bijvoorbeeld de unaire plus
+of aftrekking-.
// Impliciete conversie met unair plus let str = "123"; let num = +str; // num = 123 (nummer)- Aritmetische bewerkingen: bij gebruik van aritmetische operatoren probeert JavaScript de operands naar nummers te converteren.
// Impliciete conversie met aftrekking let str1 = "10"; let str2 = "5"; let result = str1 - str2; // result = 5 (nummer) - Wiskundige operatoren: bijvoorbeeld de unaire plus
-
Expliciete typeconversies:
parseInt(string, radix): Converteert een string naar een geheel getal. Het wordt aanbevolen om het tweede argumentradix(basis van het talstelsel) op te geven om onverwacht gedrag te voorkomen.
// Conversie met parseInt let strInt = "42px"; let numInt = parseInt(strInt, 10); // numInt = 42 (geheel getal) let strBinary = "101"; let numBinary = parseInt(strBinary, 2); // numBinary = 5 (geheel getal)parseFloat(string): Converteert een string naar een kommagetal. Het parseert de string tot de eerste niet-numerieke teken of punt.
// Conversie met parseFloat let strFloat = "3.14abc"; let numFloat = parseFloat(strFloat); // numFloat = 3.14 (kommagetal)Number(value): Converteert elke waarde naar een nummer. Het is een strengere aanpak danparseIntenparseFloat. Als de string niet volledig kan worden geconverteerd, wordtNaNgeretourneerd.
// Conversie met Number let strNum = "123.45"; let numFromNumber = Number(strNum); // numFromNumber = 123.45 (nummer)
Verschillen en kenmerken:
| Methode | Beschrijving | Geeft NaN terug bij ongeldige string | Analyseert vanaf het begin tot het eerste niet-numerieke teken |
|---|---|---|---|
+string |
Impliciete conversie met unair plus-teken. | NaN |
Nee (hele string) |
string - 0 |
Impliciete conversie met aftrekking. | NaN |
Nee (hele string) |
parseInt() |
Analyseert een geheel getal. | NaN |
Ja |
parseFloat() |
Analyseert een kommagetal. | NaN |
Ja |
Number() |
Expliciete conversie. Strenger. | NaN |
Nee (hele string) |
De keuze van de methode hangt af van de specifieke taak en het verwachte formaat van de invoerstring. Number() wordt aanbevolen voor het converteren van strings die gehele of decimale getallen zonder extra tekens voorstellen. parseInt() en parseFloat() zijn handig voor het extraheren van numerieke waarden uit strings die extra symbolen bevatten (bijvoorbeeld eenheden). Impliciete conversie moet met voorzichtigheid worden gebruikt, met begrip van het gedrag ervan.