ते तीन मार्गांनी वेगळे आहेत: scope, hoisting behavior, आणि reassignment.
js
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
ते तीन मार्गांनी वेगळे आहेत: scope, hoisting behavior, आणि reassignment.
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
var हे function-scoped आहे, hoisted आणि undefined मध्ये initialize केलेले आहे, आणि ते redeclare केले जाऊ शकते. हे आश्चर्यकारक leak होतात — त्यांची टाळणी करा.let हे block-scoped आहे ({ }), reassignable आहे, आणि temporal dead zone मध्ये त्याच्या घोषणा ओळीपर्यंत राहते (लवकर प्रवेश त्रुटी फेकतो).const हे block-scoped आहे आणि reassign केले जाऊ शकत नाही — परंतु लक्षात घ्या की binding constant आहे, value नाही:const user = { name: "Ann" };
user.name = "Bob"; // ✅ allowed — mutating the object, not reassigning
user = {}; // ❌ TypeError — can't rebind `user`
डिफॉल्टनुसार const वापरा; फक्त तर let मध्ये स्विच करा जेव्हा तुम्हाला reassign करावे लागेल; नवीन कोडमध्ये कधीही var वापरू नका. हे हेतू स्पष्ट करते ("हे बदलणार नाही") आणि var आणत असलेल्या scope leaks आणि hoisting confusion टाळतात.