Ils diffèrent de trois manières : scope, hoisting behavior et reassignment.
js
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
Ils diffèrent de trois manières : scope, hoisting behavior et reassignment.
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
var est function-scoped, hoisted et initialisé à undefined, et peut être redéclaré. Cela provoque des fuites surprenantes — évitez-le.let est block-scoped ({ }), reassignable et vit dans la temporal dead zone jusqu'à sa ligne de déclaration (y accéder tôt lève une erreur).const est block-scoped et ne peut pas être réassigné — mais notez que la liaison est constante, pas la valeur :const user = { name: "Ann" };
user.name = "Bob"; // ✅ allowed — mutating the object, not reassigning
user = {}; // ❌ TypeError — can't rebind `user`
Par défaut, utilisez const ; passez à let uniquement quand vous devez réassigner ; n'utilisez jamais var dans du nouveau code. Cela rend l'intention claire (« cela ne changera pas ») et évite les fuites de scope et la confusion du hoisting que var provoque.