তারা তিনটি উপায়ে পৃথক: 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 করা যায়। এটি অবাক করার মতো leaks ঘটায় — এটি এড়িয়ে চলুন।let block-scoped ({ }), reassignable, এবং তার declaration লাইন পর্যন্ত temporal dead zone এ থাকে (এটি প্রাথমিকভাবে access করলে ত্রুটি নিক্ষেপ হয়)।const block-scoped এবং reassign করা যায় না — কিন্তু মনে রাখবেন binding constant, মান নয়:const user = { name: "Ann" };
user.name = "Bob"; // ✅ allowed — mutating the object, not reassigning
user = {}; // ❌ TypeError — can't rebind `user`
ডিফল্টভাবে const ব্যবহার করুন; শুধুমাত্র reassign করতে হলে let এ যান; নতুন কোডে কখনও var ব্যবহার করবেন না। এটি উদ্দেশ্য স্পষ্ট করে ("এটি পরিবর্তন হবে না") এবং var যে scope leaks এবং hoisting confusion সৃষ্টি করে তা এড়ায়।