Sobes.tech
Junior

Hogyan alakul át egy karakterláncot számra JavaScriptben?

sobes.tech MI

Válasz az MI-től

A JavaScript-ben a sztringet számmá alakítani többféleképpen lehet:

  • Következetlen típusátalakítás:

    • Matematikai operátorok: például az unár + vagy a kivonás -.
    // Következetlen típusátalakítás unár + segítségével
    let str = "123";
    let num = +str; // num = 123 (szám)
    
    • Matematikai műveletek: amikor matematikai operátorokat használunk, a JavaScript megpróbálja a operandusokat számmá alakítani.
    // Kivonással végzett következetlen típusátalakítás
    let str1 = "10";
    let str2 = "5";
    let result = str1 - str2; // result = 5 (szám)
    
  • Explicit típusátalakítás:

    • parseInt(string, radix): A stringet egész számmá alakítja. A második argumentum radix (rendszer alapja) ajánlott megadni, hogy elkerüljük a váratlan viselkedést.
    // parseInt használatával történő explicit típusátalakítás
    let strInt = "42px";
    let numInt = parseInt(strInt, 10); // numInt = 42 (egész szám)
    
    let strBinary = "101";
    let numBinary = parseInt(strBinary, 2); // numBinary = 5 (egész szám)
    
    • parseFloat(string): A stringet lebegőpontos számmá alakítja. A stringet az első nem számjegyig vagy pontig elemzi.
    // parseFloat használatával történő explicit típusátalakítás
    let strFloat = "3.14abc";
    let numFloat = parseFloat(strFloat); // numFloat = 3.14 (lebegőpontos szám)
    
    • Number(value): Bármilyen értéket számmá alakít. Szigorúbb, mint a parseInt és a parseFloat. Ha a string nem alakítható teljesen számmá, NaN-t ad vissza.
    // Number használatával történő explicit típusátalakítás
    let strNum = "123.45";
    let numFromNumber = Number(strNum); // numFromNumber = 123.45 (szám)
    
    let strInvalid = "hello";
    let numInvalid = Number(strInvalid); // numInvalid = NaN
    

Különbségek és jellemzők:

Metódus Leírás Érvénytelen string esetén visszatér Az első nem számjegyig parseol
+string Következetlen típusátalakítás unár +-val. NaN Nem (az egész string)
string - 0 Következetlen típusátalakítás kivonással. NaN Nem (az egész string)
parseInt() Egész számot parseol. NaN Igen
parseFloat() Lebegőpontos számot parseol. NaN Igen
Number() Szigorú explicit típusátalakítás. NaN Nem (az egész string)

A módszer kiválasztása a konkrét feladattól és a bemeneti string várt formátumától függ. A Number() a legjobb választás olyan stringekhez, amelyek egész vagy tört számokat tartalmaznak, extra karakterek nélkül. A parseInt() és parseFloat() akkor hasznos, ha a stringekből számértékeket akarunk kinyerni, amelyek tartalmazhatnak kiegészítő karaktereket (pl. mértékegységek). A következetlen típusátalakítást óvatosan kell használni, megértve viselkedését.