একটি বাক্যে জাভাস্ক্রিপ্টে হোস্টিংয়ের বর্ণনা দেওয়ার জন্য ভেরিয়েবলগুলি এবং ফাংশনগুলি তাদের যে পরিমাণে ঘোষিত হয়েছে তার শীর্ষে টানানো হয়।
আমি ধরে নিচ্ছি যে আপনি একজন শিক্ষানবিস, সঠিকভাবে উত্তোলন বুঝতে প্রথমে আমরা অপরিজ্ঞাত এবং রেফারেন্স এররের মধ্যে পার্থক্য বুঝতে পেরেছি
var v;
console.log(v);
console.log(abc);
বেলো কোডে এখন আমরা কী দেখছি? একটি ভেরিয়েবল এবং একটি ফাংশন এক্সপ্রেশন হ'ল ডিক্লেয়ার্ড।
<script>
var totalAmo = 8;
var getSum = function(a, b){
return a+b;
}
</script>
তবে প্রমাণ সহ আসল চিত্র যে ভেরিয়েবল এবং ফাংশন উভয়ই সেখানে সুযোগের শীর্ষে উঠানো হয়েছে:
console.log(totalAmo);
console.log(getSum(8,9));
var totalAmo = 8;
var getSum = function(a, b){
return a+b;
}
console.log(totalAmo);
console.log(getSum(9,7));
প্রথম দুই লগ আউটপুট হয় অনির্দিষ্ট এবং TypeError: getSum কোন ফাংশন নয় কারণ তাদের উভয়ই Var totalAmo এবং getSum নিচে মত তাদের সুযোগ উপরে উত্তোলন করা হয়
<script>
var totalAmo;
var getSum;
console.log(totalAmo);
console.log(getSum(8,9));
var totalAmo = 8;
var getSum = function(a, b){
return a+b;
}
console.log(totalAmo);
console.log(getSum(9,7));
</script>
তবে ফাংশন ঘোষণার জন্য পুরো ফাংশনগুলি তাদের স্কোপের শীর্ষে উত্তোলিত হয়।
console.log(getId());
function getId(){
return 739373;
}
এখন একই যুক্তি those ভেরিবেল, ফাংশন এক্সপ্রেসশন এবং ফাংশন ডিক্লারটোইনগুলি কার্যকরী সুযোগের মধ্যে ঘোষিত হয়েছে। মূল বিষয়: এগুলি ফাইলের শীর্ষে তোলা হবে না ;
function functionScope(){
var totalAmo;
var getSum;
console.log(totalAmo);
console.log(getSum(8,9));
var totalAmo = 8;
var getSum = function(a, b){
return a+b;
}
}
সুতরাং, যখন আপনি var কীওয়ার্ড ব্যবহার করেন , পরিবর্তনশীল এবং ফাংশনটি সেখানে স্কোপের শীর্ষে (বৈশ্বিক স্কোপ এবং ফাংশন স্কোপ) উত্তোলন করা হয়। কি সম্পর্কে এলইটি এবং const , কনস্ট এবং লেট এখনও উভয়ই বৈশ্বের স্কোপ এবং ফাংশন স্কোপ সম্পর্কে ঠিক ওয়্যার মতই সচেতন, তবে কনস্ট এবং লেট ভেরিয়েবলগুলি ব্লকড স্কোপ নামে অন্য একটি স্কোপ সম্পর্কেও সচেতন। যখনই কোনও ব্লকের কোড থাকে যেমন লুপের জন্য, অন্য বিবৃতিতে, যখন লুপ ইত্যাদি থাকে তখন একটি ব্লক স্কোপ উপস্থিত থাকে
যখন আমরা কনস্ট ব্যবহার করি এবং এই ব্লক স্কোপটিতে কোনও ভেরিয়েবল ঘোষণা করতে দিই, তখন ভেরিয়েবল ডিক্লেয়ারেশনটি কেবলমাত্র সেই ব্লকের উপরে থাকে যা এটিতে থাকে এবং এটি প্যারেন্ট ফাংশনটির শীর্ষে বা তার শীর্ষে উত্তোলন করা হবে না এটি উত্তোলন করা হয় যে বিশ্বব্যাপী সুযোগ।
function getTotal(){
let total=0;
for(var i = 0; i<10; i++){
let valueToAdd = i;
var multiplier = 2;
total += valueToAdd*multiplier;
}
return total;
}
অ্যাবোব উদাহরণে চলকগুলি বেলোয়ের মতো উত্তোলন করা হবে
function getTotal(){
let total;
var multiplier;
total = 0;
for(var i = 0; i<10; i++){
let valueToAdd;
valueToAdd = i;
multiplier = 2;
total += valueToAdd*multiplier;
}
return total;
}