Variabile, tipuri, operatori
Lectură estimată: 3 minute
Estimare pentru text, la un ritm de 180 de cuvinte pe minut. Timpul pentru analizarea codului, exerciții și proiecte se adaugă separat și depinde de ritmul tău.
O variabilă e un nume dat unei valori. În JavaScript modern folosești const pentru valori care nu se reasignează și let pentru cele care se schimbă. Fiecare valoare are un tip, iar înțelegerea tipurilor de bază te scapă de majoritatea erorilor de început.
const și let
const nume = 'Ana'; // nu poate fi reasignat
let varsta = 30; // poate fi reasignat
varsta = 31; // ok
// nume = 'Ion'; // eroare
// nu folosi var (comportament vechi, confuz)Tipuri primitive
- string: text, între ghilimele — 'text', "text", `text`.
- number: numere, întregi sau zecimale — 42, 3.14.
- boolean: true sau false.
- null: absență intenționată a unei valori.
- undefined: variabilă declarată dar fără valoare.
Template literals
const nume = 'Ana';
const varsta = 30;
const mesaj = `${nume} are ${varsta} de ani`;
// interpolare cu ${} in ghilimele inverse `Operatori
Aritmetici: + - * / % (modulo, restul împărțirii). Comparație: === (egal strict, verifică și tipul) și !== — folosește-le mereu, niciodată == care face conversii surprinzătoare. Logici: && (și), || (sau), ! (negație).
Conversii de tip
JavaScript convertește tipuri automat, uneori neașteptat: "5" + 3 dă "53" (concatenare), "5" - 3 dă 2 (scădere numerică). Convertește explicit: Number("5"), String(5), ca să eviți surprizele.
Lucrul cu tipuri
const pret = 100; const cantitate = 3; const total = pret * cantitate; console.log(`Total: ${total} lei`); // Total: 300 lei const input = '42'; console.log(input + 1); // '421' - concatenare console.log(Number(input) + 1); // 43 - corect
Exercițiu
Declară const pentru preț și TVA (procent), let pentru cantitate. Calculează totalul cu TVA și afișează-l cu un template literal. Apoi ia o valoare dintr-un prompt() (întoarce string) și convertește-o corect înainte de calcul.
Greșeli frecvente
- Folosești var în loc de const/let.
- Folosești == în loc de === și primești comparații ciudate.
- Aduni un string cu un number și te miri de rezultat.
- Declari cu const apoi încerci să reasignezi.
De reținut
- const implicit, let doar când reasignezi, niciodată var.
- Tipuri primitive: string, number, boolean, null, undefined.
- Template literals cu ${} pentru text compus.
- === și !== mereu; convertește tipurile explicit.
Pe scurt
Variabilele denumesc valori, iar valorile au tipuri. const/let, tipuri primitive, template literals și comparație strictă îți acoperă baza.
Conversie explicită înaintea calculelor
Valorile unui formular vin de obicei ca șiruri. Operatorul plus poate concatena, de aceea conversia trebuie făcută înaintea calculului și verificată. Un șir gol nu trebuie acceptat accidental ca zero dacă regula cere o valoare. Folosește comparații stricte pentru a evita egalități surprinzătoare între tipuri. Pentru bani, stabilește o strategie de reprezentare și rotunjire; exemplul de mai jos este un calcul didactic simplu, nu un motor fiscal.
Exemplu de lucru
const text = '12.50';
const pret = Number(text);
if (!Number.isFinite(pret)) throw new Error('Preț invalid');
const cantitate = 3;
const total = pret * cantitate;
console.log(total.toFixed(2)); // 37.50
console.log('12' + 3); // 123
console.log(Number('12') + 3); // 15Interpretarea rezultatului
toFixed întoarce un șir pentru afișare, nu un număr cu precizie monetară specială. Păstrează separată valoarea de calcul de cea formatată. Testează gol, text nevalid, zero și număr negativ conform regulii produsului, fără a accepta tot ce poate converti Number.
Exercițiu de consolidare
Adaugă o validare care respinge șirul gol înainte de conversie și o cantitate care nu este întreg pozitiv.
Aplicație practică
Sarcina
Calculează totalul din valori introduse în input-uri.
Rezolvare orientativă și verificare
Number('12') + Number('3') produce 15, în timp ce două string-uri se concatenează. Verifică Number.isFinite pentru valori invalide.
Greșeală de evitat
Input-urile HTML livrează în mod obișnuit text.
Documentație și surse
- JavaScript Guide — MDN
Ți-a plăcut lecția? Continuă cursul complet
Ai citit o lecție gratuită. Celelalte lecții, aplicațiile practice și materialele se deblochează odată cu cursul.
99 lei
Plată unică, acces pe viață la toate cele 8 lecții.
Vezi ce conține cursul →