Sobes.tech
Junior

Kako se u JavaScript-u pretvara niz u broj?

sobes.tech АИ

Одговор од АИ

Konverzija niza u broj u JavaScript-u može se izvršiti na nekoliko načina:

  • Neizvesna konverzija tipa:

    • Matematički operatori: na primer, unarni plus + ili oduzimanje -.
    // Neizvesna konverzija pomoću unarnog plusa
    let str = "123";
    let num = +str; // num = 123 (broj)
    
    • Matematičke operacije: kada se koriste matematički operatori, JavaScript će pokušati da pretvori operande u brojeve.
    // Neizvesna konverzija pomoću oduzimanja
    let str1 = "10";
    let str2 = "5";
    let result = str1 - str2; // result = 5 (broj)
    
  • Javna konverzija tipa:

    • parseInt(string, radix): Pretvara niz u ceo broj. Drugi argument radix (baza sistema) se preporučuje navesti da bi se izbeglo neočekivano ponašanje.
    // Konverzija pomoću parseInt
    let strInt = "42px";
    let numInt = parseInt(strInt, 10); // numInt = 42 (ceo broj)
    
    let strBinary = "101";
    let numBinary = parseInt(strBinary, 2); // numBinary = 5 (ceo broj)
    
    • parseFloat(string): Pretvara niz u decimalni broj. Parsira niz do prvog nebrojevnog znaka ili tačke.
    // Konverzija pomoću parseFloat
    let strFloat = "3.14abc";
    let numFloat = parseFloat(strFloat); // numFloat = 3.14 (decimalni broj)
    
    • Number(value): Pretvara bilo koju vrednost u broj. Strožiji je u poređenju sa parseInt i parseFloat. Ako se niz ne može u potpunosti pretvoriti u broj, vraća NaN.
    // Konverzija pomoću Number
    let strNum = "123.45";
    let numFromNumber = Number(strNum); // numFromNumber = 123.45 (broj)
    
    let strInvalid = "hello";
    let numInvalid = Number(strInvalid); // numInvalid = NaN
    

Razlike i osobine:

Metod Opis Vraća pri nevažećem nizu Parsira od početka do prvog nebrojevnog znaka
+string Neprepoznatljiv preobražaj sa unarnim +. NaN Ne (cela linija)
string - 0 Neprepoznatljiv preobražaj sa oduzimanjem. NaN Ne (cela linija)
parseInt() Parsira ceo broj. NaN Da
parseFloat() Parsira decimalni broj. NaN Da
Number() Direktni preobražaj. Stroži. NaN Ne (cela linija)

Izbor metode zavisi od konkretne zadatka i očekivanog formata ulaznog niza. Number() je preferirana za konverziju nizova koji predstavljaju cele ili decimalne brojeve bez dodatnih znakova. parseInt() i parseFloat() su korisni za izvlačenje numeričkih vrednosti iz nizova koji sadrže dodatne znakove (npr. mere). Neprepoznatljiv preobražaj treba koristiti pažljivo, razumevajući njegovo ponašanje.