Ato ndryshojnë në tre mënyra: scope, hoisting behavior, dhe reassignment.
js
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
Ato ndryshojnë në tre mënyra: scope, hoisting behavior, dhe reassignment.
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
var është function-scoped, hoisted dhe initialized në undefined, dhe mund të rideklarohet. Kjo shkakton rrjedhje të çuditshme — shmangje atë.let është block-scoped ({ }), mund të rideklarohet, dhe gjendet në temporal dead zone derisa në linjen e deklarimit të tij (aksesi i hershëm hedh një gabim).const është block-scoped dhe nuk mund të rideklarohet — por vini re se binding-u është konstant, jo vlera:const user = { name: "Ann" };
user.name = "Bob"; // ✅ allowed — mutating the object, not reassigning
user = {}; // ❌ TypeError — can't rebind `user`
Filloni me const; kaloni në let vetëm kur duhet të rideklaroni; mos përdorni kurrë var në kod të ri. Kjo e bën qëllimin të qartë ("kjo nuk do të ndryshojë") dhe shmang rrjedhjet e scope-it dhe konfuzionin e hoisting-ut që sjell var.