De skiljer sig på tre sätt: scope, hoisting behavior och reassignment.
js
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
De skiljer sig på tre sätt: scope, hoisting behavior och reassignment.
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
var är function-scoped, hoisted och initialiserad till undefined, och kan deklareras om. Detta orsakar överraskande läckor — undvik det.let är block-scoped ({ }), kan omtilldelas, och finns i temporal dead zone tills dess deklarationsrad (åtkomst tidigare kastar ett fel).const är block-scoped och kan inte omtilldelas — men notera att bindningen är konstant, inte värdet:const user = { name: "Ann" };
user.name = "Bob"; // ✅ allowed — mutating the object, not reassigning
user = {}; // ❌ TypeError — can't rebind `user`
Standard till const; byt till let endast när du måste omtilldela; använd aldrig var i ny kod. Detta gör intentionen tydlig ("detta kommer inte att ändras") och undviker scope-läckor och hoisting-förvirring som var medför.