Ze verschillen op drie manieren: scope, hoisting behavior en reassignment.
js
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
Ze verschillen op drie manieren: scope, hoisting behavior en reassignment.
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
var is function-scoped, hoisted en geïnitialiseerd naar undefined, en kan opnieuw worden gedeclareerd. Dit veroorzaakt verrassende leaks — vermijd dit.let is block-scoped ({ }), kan opnieuw worden toegewezen, en bevindt zich in de temporal dead zone tot zijn declaratieregel (vroegtijdig toegang werpt een fout).const is block-scoped en kan niet opnieuw worden toegewezen — maar houd er rekening mee dat de binding constant is, niet de waarde:const user = { name: "Ann" };
user.name = "Bob"; // ✅ allowed — mutating the object, not reassigning
user = {}; // ❌ TypeError — can't rebind `user`
Gebruik standaard const; schakel naar let alleen wanneer u opnieuw moet toewijzen; gebruik nooit var in nieuwe code. Dit maakt de intentie duidelijk ("dit zal niet veranderen") en vermijdt de scope leaks en hoisting verwarring die var met zich meebrengt.