అవి మూడు విధాలుగా భిన్నంగా ఉన్నాయి: 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 చేయబడింది, మరియు తిరిగి declare చేయవచ్చు. ఇది ఆశ్చర్యకరమైన లీక్లను కలిగిస్తుంది — దానిని నివారించండి.let block-scoped ({ }), reässign చేయవచ్చు, మరియు దాని declaration line వరకు temporal dead zoneలో ఉంటుంది (ఇది కంటే ముందుగా access చేస్తే error throw చేస్తుంది).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`
Default ఆ **const**కు; మీరు reassign చేయవలసి వచ్చినప్పుడు మాత్రమే **let**కు మార్చండి; కొత్త కోడ్లో var ఎప్పుడూ ఉపయోగించవద్దు. ఇది ఉద్దేశ్యాన్ని స్పష్టం చేస్తుంది ("ఇది మారదు") మరియు scope leaks మరియు hoisting confusion నుండి తప్పుకుంటుంది.