হোইস্টিং হলো একটি জাভাস্ক্রিপ্ট কৌশল যা ভেরিয়েবল এবং ফাংশন ডিক্লেরেশনকে কোড এক্সিকিউশন শুরু হওয়ার আগে তাদের স্কোপের শীর্ষে সরিয়ে দেয়। একটি স্কোপের ভিতরে ফাংশন বা ভেরিয়েবল কোথায় ডিক্লেয়ার করা হয়েছে সেটা မဟligen, সেগুলো তাদের স্কোপের শীর্ষে সরানো হয়।
লক্ষ্য করুন যে হোইস্টিং শুধু ডিক্লেরেশন সরায়, অ্যাসাইনমেন্টগুলো জায়গায়ই থাকে।
উদাহরণ
console.log(functionBelow("Hello")); function functionBelow(greet) { return `${greet} world`; } console.log(functionBelow("Hi"));আউটপুট
Hello world Hi world
লক্ষ্য করুন যে ফাংশন ডিক্লেরেশন কল করার পরেও ছিল, কিন্তু এটিকে কল করা যায়। এটি ফাংশন হোইস্টিংয়ের কারণে সম্ভব।
এছাড়াও লক্ষ্য করুন যে এটি কাজ করে না যখন আপনি ফাংশনগুলো ভেরিয়েবলের মত অ্যাসাইন করেন।
console.log(functionBelow("Hello")); var functionBelow = function(greet) { return `${greet} world`; } console.log(functionBelow("Hi"));এটি এরর দেবে: functionBelow is not a function
আপনি যদি var সরান, তবে এরর হবে: functionBelow is not defined
লক্ষ্য করুন যে যখন এটি var দিয়ে ডিক্লেয়ার করা হয়েছিল, তবে এটি কনটেক্সটে একটি ভেরিয়েবল হিসেবে হোইস্ট করা হয়েছিল। কিন্তু এটি এখনও undefined ছিল। এটি ভেরিয়েবল হোইস্টিং নামে পরিচিত। এই বৈশিষ্ট্যের কারণে, অ্যানোনিমাস এবং অ্যারো ফাংশন জাভাস্ক্রিপ্টে কখনো হোইস্ট হয় না।