Variabile, tipuri, operatori
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.