JavaScript Hoisting

জাভাস্ক্রিপ্ট হোস্টিং
ডাটা টাইপ ডিক্লেয়ারেশনের জন্য হোস্টিং জাভাস্ক্রিপ্টের একটি ডিফল্ট বেবস্থা।

জাভাস্ক্রিপ্টে ডিক্লেয়ারেশন হোস্ট পদ্ধতিতে হয়:
জাভাস্ক্রিপ্টে একটি ভেরিয়েবলকে ডিক্লেয়ার করার পূর্বে এটি বেবহার করা যায়।
অর্থাৎ ভেরিযবল টাইপ ডিক্লেয়ার করার আগেই তা বেবহার করা যায়।
নিচের উদাহরণ ১ এবং উদাহরণ ২ এর আউটপুট একই হবে:
উদাহরণ ১:
x = 5; // Assign 5 to x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x; // Display x in the element
var x; // Declare x
উদাহরণ ২:
var x; // Declare x
x = 5; // Assign 5 to x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x; // Display x in the element
উপরোক্ত উদাহরণগুলো বোঝার জন্য প্রথমে হোস্ট সম্পর্কে ভালো ধারণা থাকতে হবে।
হোস্টিং হলো জাভাস্ক্রিপ্টের একটি ডিফল্ট বেবস্থা যা কোনো একটি কারেন্ট ফাংশন বা স্ক্রিপ্টের সকল ডিক্লেয়ারেশন প্রথমেই ঠিক করে রাখে।

জাভাস্ক্রিপ্টে ইনিশিয়ালাইজ হোস্ট পদ্ধতিতে করা যায় না:
জাভাস্ক্রিপ্ট শুধুমাত্র ডিক্লেয়ারেশনকে হোস্ট করে ইনিশিয়ালাইজেশনকে হোস্ট করে না।
নিচের উদাহরণ ১ এবং উদাহরণ ২ এর আউটপুট এক হবে না:
উদাহরণ ১:
var x = 5; // Initialize x
var y = 7; // Initialize y
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
উদাহরণ ২:
var x = 5; // Initialize x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
var y = 7; // Initialize y

উদাহরণ ২ এ y প্রথমে ইনিশিয়ালাইজ করা হয়নি তাই y এখানে আনডিফাইনড দেখাবে।
উদাহরণ ২ কে নিচের উপায়ে লিখতে হবে:
var x = 5; // Initialize x
var y; // Declare y
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
y = 7; // Assign 7 to y

ভেরিয়েবলকে প্রথমে ডিক্লেয়ার করা:
জাভাস্ক্রিপ্টের অনেক ডেভলোপারদের কাছে হোস্টিং বিষয়টি সম্পূর্ণ পরিস্কার নয়, যদি কেউ হোস্টিং এর সঠিক বেবহার না জানে তাহলে প্রোগ্রামে অনেক বাগ থাকতে পারে, এই সমস্যা সমাধানের জন্য ভেরিয়েবলকে সবসময় শুরুতে ডিক্লেয়ার করা ভালো। তাছাড়াও জাভাস্ক্রিপ্ট যেহেতু একটি ইন্টারপ্রেটিং লেঙ্গুয়েজ তাই প্রোগ্রামিংএর জন্য এটি একটি সুন্দর চর্চ়াও।

Permanent link to this article: http://bangla.sitestree.com/javascript-hoisting/