Junior
Cum se convertește un șir într-un număr în JavaScript?
sobes.tech AI
Răspuns de la AI
În JavaScript, conversia unui șir de caractere în număr poate fi realizată în mai multe moduri:
-
Conversii implicite de tip:
- Operatori matematici: de exemplu, plusul unar
+sau scăderea-.
// Conversie implicită cu plusul unar let str = "123"; let num = +str; // num = 123 (număr)- Operații aritmetice: folosind operatori aritmetici, JavaScript va încerca să convertească operanzii în numere.
// Conversie implicită cu scădere let str1 = "10"; let str2 = "5"; let result = str1 - str2; // result = 5 (număr) - Operatori matematici: de exemplu, plusul unar
-
Conversii explicite de tip:
parseInt(string, radix): Convertește un șir într-un număr întreg. Se recomandă specificarea celui de-al doilea argumentradix(baza sistemului numeric) pentru a evita comportamente neașteptate.
// Conversie cu parseInt let strInt = "42px"; let numInt = parseInt(strInt, 10); // numInt = 42 (număr întreg) let strBinary = "101"; let numBinary = parseInt(strBinary, 2); // numBinary = 5 (număr întreg)parseFloat(string): Convertește un șir într-un număr cu virgulă mobilă. Analizează șirul până la primul caracter non-numeric sau punct.
// Conversie cu parseFloat let strFloat = "3.14abc"; let numFloat = parseFloat(strFloat); // numFloat = 3.14 (număr cu virgulă mobilă)Number(value): Convertește orice valoare într-un număr. Este o abordare mai strictă comparativ cuparseIntșiparseFloat. Dacă șirul nu poate fi complet convertit în număr, returneazăNaN.
// Conversie cu Number let strNum = "123.45"; let numFromNumber = Number(strNum); // numFromNumber = 123.45 (număr)
Diferențe și caracteristici:
| Metodă | Descriere | Returnează NaN pentru șir invalid | Analizează de la început până la primul caracter non-numeric |
|---|---|---|---|
+string |
Conversie implicită cu plusul unar. | NaN |
Nu (toată șirul) |
string - 0 |
Conversie implicită cu scădere. | NaN |
Nu (toată șirul) |
parseInt() |
Analizează un număr întreg. | NaN |
Da |
parseFloat() |
Analizează un număr cu virgulă mobilă. | NaN |
Da |
Number() |
Conversie explicită. Mai strictă. | NaN |
Nu (toată șirul) |
Alegerea metodei depinde de sarcina specifică și de formatul așteptat al șirului de intrare. Number() este preferat pentru conversia șirurilor care reprezintă numere întregi sau zecimale fără caractere suplimentare. parseInt() și parseFloat() sunt utile pentru extragerea valorilor numerice din șiruri care conțin simboluri suplimentare (de exemplu, unități de măsură). Conversia implicită trebuie utilizată cu precauție, înțelegând comportamentul său.