Se diferențiază în trei aspecte: scope, comportamentul hoisting și reasignare.
js
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
Se diferențiază în trei aspecte: scope, comportamentul hoisting și reasignare.
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
var este function-scoped, hoisted și inițializat cu undefined, și poate fi redeclarat. Aceasta provoacă scurgeri surprinzătoare — evitați-l.let este block-scoped ({ }), reasignabil, și se află în temporal dead zone până la linia sa de declarație (accesarea lui mai devreme aruncă o eroare).const este block-scoped și nu poate fi reasignat — dar rețineți că binding-ul este constant, nu valoarea:const user = { name: "Ann" };
user.name = "Bob"; // ✅ allowed — mutating the object, not reassigning
user = {}; // ❌ TypeError — can't rebind `user`
Implicite cu const; treceți la let doar când trebuie reasignați; nu folosiți niciodată var în cod nou. Aceasta clarifică intenția ("aceasta nu se va schimba") și evită scurgerile de scope și confuzia hoisting pe care le aduce var.