Sobes.tech
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)
    
  • Expliciete typeconversies:

    • parseInt(string, radix): Converteert een string naar een geheel getal. Het wordt aanbevolen om het tweede argument radix (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 dan parseInt en parseFloat. Als de string niet volledig kan worden geconverteerd, wordt NaN geretourneerd.
    // 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.