Wanatofautiana kwa njia tatu: scope, hoisting behavior na reassignment.
js
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
Wanatofautiana kwa njia tatu: scope, hoisting behavior na reassignment.
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
var ni function-scoped, hoisted na initialized kwa undefined, na inaweza kutengenezwa tena. Hii husababisha mabovu yanayojulika — kuzuia.let ni block-scoped ({ }), inaweza kuwekwa upya, na iko katika temporal dead zone hadi mstari wake wa mgao (kuipata mapema kutaeneza).const ni block-scoped na haiwezi kuwekwa upya — lakini kumbuka kwamba binding ni constant, si thamani:const user = { name: "Ann" };
user.name = "Bob"; // ✅ allowed — mutating the object, not reassigning
user = {}; // ❌ TypeError — can't rebind `user`
Kubadilisha kwa default kwa const; badili kwa let tu wakati lazima kuweka tena; kamwe usitumie var katika kanuni mpya. Hii inaifanya nia kuwa wazi ("hii haitabadilika") na kuepuka mabovu ya scope na hoisting confusion ambayo var inaleta.
Maktaba ya maswali ya mahojiano ya IT yenye majibu ya kina — kutoka Junior hadi Senior.
Changia