Sobes.tech
Junior

Ako sa v JavaScriptu prevedie reťazec na číslo?

sobes.tech AI

Odpoveď od AI

Prevodom nahrávky reťazca na číslo v JavaScriptu je možné vykonať niekoľkými spôsobmi:

  • Nepriame prevody typu:

    • Matematické operátory: napríklad unárny plus + alebo odčítanie -.
    // Nepriame prevody pomocou unárneho plusu
    let str = "123";
    let num = +str; // num = 123 (číslo)
    
    • Matematické operácie: pri použití matematických operátorov sa JavaScript pokúsi previesť operandov na čísla.
    // Nepriame prevody pomocou odčítania
    let str1 = "10";
    let str2 = "5";
    let result = str1 - str2; // result = 5 (číslo)
    
  • Priame prevody typu:

    • parseInt(string, radix): Prevod reťazca na celé číslo. Druhý argument radix (základ sústavy) sa odporúča uvádzať, aby sa predišlo neočakávanému správaniu.
    // Priamy prevod pomocou parseInt
    let strInt = "42px";
    let numInt = parseInt(strInt, 10); // numInt = 42 (celé číslo)
    
    let strBinary = "101";
    let numBinary = parseInt(strBinary, 2); // numBinary = 5 (celé číslo)
    
    • parseFloat(string): Prevod reťazca na číslo s pohyblivou desatinnou čiarkou. Parsuje reťazec do prvého nečíselného znaku alebo bodky.
    // Priamy prevod pomocou parseFloat
    let strFloat = "3.14abc";
    let numFloat = parseFloat(strFloat); // numFloat = 3.14 (číslo s pohyblivou desatinnou čiarkou)
    
    • Number(value): Prevod akéhokoľvek hodnoty na číslo. Je prísnejší ako parseInt a parseFloat. Ak reťazec nemôže byť úplne prevedený na číslo, vráti NaN.
    // Prevod pomocou Number
    let strNum = "123.45";
    let numFromNumber = Number(strNum); // numFromNumber = 123.45 (číslo)
    
    let strInvalid = "hello";
    let numInvalid = Number(strInvalid); // numInvalid = NaN
    

Rozdiely a vlastnosti:

Metóda Popis Vráti pri neplatnom reťazci Parsuje od začiatku do prvého nečíselného znaku
+string Nepriame prevody pomocou unárneho +. NaN Nie (celý reťazec)
string - 0 Nepriame prevody pomocou odčítania. NaN Nie (celý reťazec)
parseInt() Parsuje celé číslo. NaN Áno
parseFloat() Parsuje číslo s pohyblivou desatinnou čiarkou. NaN Áno
Number() Priamy prevod. Prísnejší. NaN Nie (celý reťazec)

Výber metódy závisí od konkrétneho úlohy a očakávaného formátu vstupného reťazca. Number() je preferovaná pre prevod reťazcov, ktoré predstavujú celé alebo desatinné čísla bez ďalších znakov. parseInt() a parseFloat() sú užitočné na extrakciu číselných hodnôt z reťazcov obsahujúcich doplnkové znaky (napríklad jednotky merania). Nepriame prevody je potrebné používať opatrne, s pochopením jeho správania.