Junior
Come si converte una stringa in numero in JavaScript?
sobes.tech AI
Risposta dell'AI
In JavaScript, la conversione di una stringa in numero può essere eseguita in diversi modi:
-
Conversioni implicite di tipo:
- Operatori matematici: ad esempio, l'unario
+o la sottrazione-.
// Conversione implicita con l'unario + let str = "123"; let num = +str; // num = 123 (numero)- Operazioni aritmetiche: usando operatori aritmetici, JavaScript tenterà di convertire gli operandi in numeri.
// Conversione implicita con sottrazione let str1 = "10"; let str2 = "5"; let result = str1 - str2; // result = 5 (numero) - Operatori matematici: ad esempio, l'unario
-
Conversioni esplicite di tipo:
parseInt(string, radix): Converte una stringa in un intero. Si consiglia di specificare il secondo argomentoradix(base del sistema numerico) per evitare comportamenti imprevisti.
// Conversione con parseInt let strInt = "42px"; let numInt = parseInt(strInt, 10); // numInt = 42 (intero) let strBinary = "101"; let numBinary = parseInt(strBinary, 2); // numBinary = 5 (intero)parseFloat(string): Converte una stringa in un numero a virgola mobile. Analizza la stringa fino al primo carattere non numerico o punto.
// Conversione con parseFloat let strFloat = "3.14abc"; let numFloat = parseFloat(strFloat); // numFloat = 3.14 (numero a virgola mobile)Number(value): Converte qualsiasi valore in un numero. È un approccio più rigoroso rispetto aparseInteparseFloat. Se la stringa non può essere completamente convertita in un numero, restituisceNaN.
// Conversione con Number let strNum = "123.45"; let numFromNumber = Number(strNum); // numFromNumber = 123.45 (numero) let strInvalid = "hello"; let numInvalid = Number(strInvalid); // numInvalid = NaN
Differenze e caratteristiche:
| Metodo | Descrizione | Restituisce NaN con stringa non valida | Analizza dall'inizio fino al primo carattere non numerico |
|---|---|---|---|
+string |
Conversione implicita con l'unario +. | NaN |
No (tutta la stringa) |
string - 0 |
Conversione implicita con sottrazione. | NaN |
No (tutta la stringa) |
parseInt() |
Analizza un intero. | NaN |
Sì |
parseFloat() |
Analizza un numero a virgola mobile. | NaN |
Sì |
Number() |
Conversione esplicita. Più rigorosa. | NaN |
No (tutta la stringa) |
La scelta del metodo dipende dal compito specifico e dal formato atteso della stringa di input. Number() è preferibile per convertire stringhe che rappresentano numeri interi o decimali senza caratteri extra. parseInt() e parseFloat() sono utili per estrarre valori numerici da stringhe contenenti simboli aggiuntivi (ad esempio, unità di misura). La conversione implicita deve essere usata con cautela, comprendendo il suo comportamento.