Ce face parseInt / Number
Valorile citite din formulare, din adrese URL sau din localStorage sunt mereu text. Ca să faci calcule cu ele, trebuie transformate în numere.
parseInt și parseFloat citesc numărul de la începutul textului și se opresc la primul caracter care nu se potrivește, deci "15px" devine 15. Number este strict: dacă textul nu este în întregime un număr, returnează NaN.
NaN (Not a Number) înseamnă că transformarea a eșuat. Verifici cu Number.isNaN(valoare).
Parametri
| Parametru | Descriere |
|---|---|
text |
Textul de transformat. |
baza |
Opțional la parseInt. Baza de numerație, de obicei 10. |
Ce returnează
Un număr sau NaN.
Exemple
Exemplul 1: Diferențele dintre cele trei
console.log(parseInt("42"));
console.log(parseInt("15px"));
console.log(parseFloat("19.99 lei"));
console.log(Number("19.99"));
console.log(Number("15px"));
Rezultat
42
15
19.99
19.99
NaN
Exemplul 2: De ce contează la adunare
const cantitate = "2";
console.log(cantitate + 1);
console.log(Number(cantitate) + 1);
Rezultat
21
3
Exemplul 3: Verificarea unei valori introduse
const varsta = Number("douăzeci");
if (Number.isNaN(varsta)) {
console.log("Introdu vârsta în cifre.");
}
Rezultat
Introdu vârsta în cifre.
Greșeli frecvente
- Aduni un text cu un număr și obții lipire în loc de adunare:
"2" + 1dă"21". - Compari cu
NaNdirect:x === NaNeste mereufalse. FoloseșteNumber.isNaN(x). - Citești prețuri cu virgulă (
"19,99").parseFloatse oprește la virgulă și dă 19. Înlocuiește întâi virgula cu punct.
Comenzi înrudite
toFixed: Formatează un număr cu un număr fix de zecimale. Returnează text.typeof: Returnează tipul unei valori ca text: „string”, „number”, „boolean”, „object” etc.Math.round / floor / ceil: Rotunjește un număr: la cel mai apropiat întreg, în jos sau în sus.