Három módon különböznek: scope, hoisting viselkedés és újraosztás.
js
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
Három módon különböznek: scope, hoisting viselkedés és újraosztás.
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
var function-scoped, hoisted és undefined-re inicializálódik, és újra deklarálható. Ez meglepő szivárgásokat okoz — kerüljük.let block-scoped ({ }), újraosztható, és a temporal dead zone-ban marad a deklarációs soráig (korai hozzáféréssel hibát dob).const block-scoped és nem osztható újra — de vegyük figyelembe, hogy a kötés konstans, nem az érték:const user = { name: "Ann" };
user.name = "Bob"; // ✅ allowed — mutating the object, not reassigning
user = {}; // ❌ TypeError — can't rebind `user`
Alapesetben const-tal kezdjen; csak akkor váltson let-re, ha újra kell osztania; soha ne használjon var-t új kódban. Ez világossá teszi a szándékot ("ez nem fog változni") és elkerüli a var által okozott scope szivárgást és hoisting zavart.