Razlikuju se na tri načina: scope, ponašanje hoistinga i ponovno dodjeljivo vrijednost.
js
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
Razlikuju se na tri načina: scope, ponašanje hoistinga i ponovno dodjeljivo vrijednost.
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
var je function-scoped, podignuto i inicijalizirano na undefined, i može se ponovno deklarirati. Ovo uzrokuje iznenađujuće curenja — izbjegavajte ga.let je block-scoped ({ }), ponovno dodijeljivom, i živi u vremenskoj mrtvoj zoni sve dok se ne dosegne linija deklaracije (pristup ranije baca grešku).const je block-scoped i ne može se ponovno dodijeliti — ali napomene da je vezivanje konstanto, ne vrijednost:const user = { name: "Ann" };
user.name = "Bob"; // ✅ allowed — mutating the object, not reassigning
user = {}; // ❌ TypeError — can't rebind `user`
Podrazumevano počnite s const; prebacite se na let samo kada trebate ponovno dodijeliti; nikada ne koristite var u novom kodu. To jasno pokazuje namjeru ("ovo se neće promijeniti") i izbjegava curenja scopea i zbunjenost hoistinga koju donosi var.