Razlikujejo se v treh vidikih: obsegu (scope), vedenju pri vzdigovanju (hoisting) in možnosti ponovnega pripisovanja.
js
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
Razlikujejo se v treh vidikih: obsegu (scope), vedenju pri vzdigovanju (hoisting) in možnosti ponovnega pripisovanja.
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
var je function-scoped, se vzdiguje in inicijalizira na undefined, ter se lahko ponovno deklarira. To povzroča nepričakovane uhajanje — izogibajte se mu.let je block-scoped ({ }), se lahko ponovno pripiše, in se nahaja v temporal dead zone do njegove deklaracijske vrstice (dostop prej sproži napako).const je block-scoped in ne more biti ponovno pripisana — vendar je vezava konstantna, ne vrednost:const user = { name: "Ann" };
user.name = "Bob"; // ✅ allowed — mutating the object, not reassigning
user = {}; // ❌ TypeError — can't rebind `user`
Privzeto uporabite const; preklopite na let samo, če morate ponovno pripisati; nikoli ne uporabljajte var v novi kodi. To jasno pokaže namen ("to se ne bo spremenilo") in izognete se uhajanjem obsega in zmedi pri vzdigovanju, ki ju prinaša var.