तिनीहरू तीन तरीकामा भिन्न छन्: scope, hoisting behavior, र reassignment.
js
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
तिनीहरू तीन तरीकामा भिन्न छन्: scope, hoisting behavior, र reassignment.
() {
() {
a = ;
b = ;
c = ;
}
.(a);
.(b);
}
var function-scoped छ, hoisted छ र undefined मा सुरुआत गरिएको छ, र पुनः घोषणा गर्न सकिन्छ। यसले आश्चर्यजनक रिसाव गर्छ — यलाई टाल्नुहोस्।let block-scoped ({ }) छ, reassignable छ, र आफ्नो घोषणा लाइन सम्म temporal dead zone मा रहन्छ (शीघ्र पहुँचले त्रुटि फेकिन्छ)।const block-scoped छ र पुनः असाइन गर्न सकिँदैन — तर ध्यान दिनुहोस् कि binding स्थिर छ, मान होइन:const user = { name: "Ann" };
user.name = "Bob"; // ✅ allowed — mutating the object, not reassigning
user = {}; // ❌ TypeError — can't rebind `user`
डिफल्टमा const प्रयोग गर्नुहोस्; let मा स्विच गर्नुहोस् केवल जब तपाईले पुनः असाइन गर्नुपर्छ; नयाँ कोडमा कहिले पनि var प्रयोग गर्नुहोस्। यसले अभिप्रायलाई स्पष्ट गर्छ ("यो परिवर्तन हुनेछैन") र var लेकिन scope रिसाव र hoisting भ्रमलाई टाल्छ।