वे तीन तरीकों से अलग हैं: 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 किया जा सकता है। यह आश्चर्यजनक leaks का कारण बनता है — इससे बचें।let है block-scoped ({ }), reassignable, और अपनी declaration line तक temporal dead zone में रहता है (इसे जल्दी access करने से error आता है)।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 का उपयोग न करें। यह intent को स्पष्ट करता है ("यह नहीं बदलेगा") और var से आने वाले scope leaks और hoisting confusion से बचाता है।