কোনও ফাংশনের অভ্যন্তরে ঘোষিত হওয়ার পরে কেন ভেরিয়েবলগুলি এত অদ্ভুত আচরণ করে তা বুঝতে পারি না।
ইন
firstফাংশন আমি ডিক্লেয়ারletভেরিয়েবলbএবংcমান 10 :b = c = 10;ইন
secondফাংশন আমি দেন:b + ", " + cএবং এটি দেখায়:
10, 10এছাড়াও
firstফাংশন আমি ঘোষণাaমান 10 :let a = b = c = 10;তবে
secondফাংশনে এটি একটি ত্রুটি দেখায়:ভেরিয়েবল খুঁজে পাচ্ছেন না:
aএখন
firstফাংশনটিতে আমি 20dমান দিয়ে ঘোষণা করি :var d = 20;তবে
secondফাংশনে এটি আগের মতো একই ত্রুটি দেখায়, তবে ভেরিয়েবলের সাথেd:ভেরিয়েবল খুঁজে পাচ্ছেন না:
d
উদাহরণ:
function first() {
let a = b = c = 10;
var d = 20;
second();
}
function second() {
console.log(b + ", " + c); //shows "10, 10"
try{ console.log(a); } // Rreference error
catch(e){ console.error(e.message) }
try{ console.log(d); } // Reference error
catch(e){ console.error(e.message) }
}
first()
Dim Apple, Banana, Pear As Fruitমানে Dim Apple / Dim Banana / Dim Pear As Fruit, এবং না Dim Apple As Fruit / ...।
bএবংcপ্রিফিক্স নেইvarশব্দ।aএবংdস্থানীয় হয়first।