ECMA/জাভাস্ক্রিপ্ট ভাষা var দিয়ে ডিক্লেয়ার করা যেকোনো ভেরিয়েবলকে ফাংশনের শীর্ষে হয়স্ট (hoist) করে দেয়। কারণ এই ভাষার ফাংশন স্কোপ আছে, ব্লক স্কোপ নেই সি-মত ভাষাগুলোর মতো।
function() {
for(var a = 0; a < 7; a++) {
var b = 100;
}
}
এটি সমান:
function() {
var b;
for(var a = 0; a < 7; a++) {
b = 100;
}
}
কিন্তু let-এ এটি প্রযোজ্য নয়। let-এ লেক্সিক্যাল স্কোপিং আছে। সুতরাং যদি লুপের বাইরে ভেরিয়েবল দরকার না হয় (বা প্রতিটি ইটেরেশন আগের ইটেরেশনের অপারেশনে নির্ভর না করে), তবে সেটি ব্যবহারের স্কোপের ভিতরেই ডিক্লেয়ার করা ভালো।