Sari la conținut
← JavaScript de la zero
Progres curs 0 / 8 lecții (0%)

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); // 15

Interpretarea 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

Ț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 →

Folosim cookie-uri esențiale pentru funcționarea site-ului și, cu acordul tău, cookie-uri de analiză și publicitate. Partenerii noștri, inclusiv Google, pot folosi cookie-uri pentru a afișa reclame relevante. Detalii în Politica de cookie-uri.