ისინი განსხვავდებიან სამი გზით: scope, hoisting behavior და reassignment.
js
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
ისინი განსხვავდებიან სამი გზით: scope, hoisting behavior და reassignment.
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
var არის function-scoped, hoisted და initialized undefined მნიშვნელობით, და შეიძლება redeclare გაკეთდეს. ეს იწვევს გაკვირვებული მცირე გაჟონვებს — თავი დაიფაროთ.let არის block-scoped ({ }), reassignable, და მდებარეობს temporal dead zone ში სანამ მის დეკლარაციის ხაზამდე (ადრეული წვდომა throws).const არის block-scoped და არ შეიძლება reassigned — მაგრამ გაითვალისწინეთ, რომ binding არის constant, არა მნიშვნელობა:const user = { name: "Ann" };
user.name = "Bob"; // ✅ allowed — mutating the object, not reassigning
user = {}; // ❌ TypeError — can't rebind `user`
ნაგულელი const; გადერთეთ let მხოლოდ მაშინ, როდესაც უნდა reassign; ყოთ არ გამოიყენოთ var ახალი კოდში. ეს ხდის განზრახვას ნათელ ("ეს არ შეიცვლება") და ასახ避ает scope leaks და hoisting confusion რომელიც var მოჰყავს.