জাভাস্ক্রিপ্টে ফাংশনে ভেরিয়েবলের একই নাম
ধরুন ফাংশনের বাইরেও একটি ভেরিয়েবল
num আছে এবং ভিতরেও একটি ভেরিয়েবল
num আছে। এই ক্ষেত্রে, লোকাল ভেরিয়েবল
num-এর যেকোনো পরিবর্তন গ্লোবাল ভেরিয়েবল
num-কে কোনোভাবেই প্রভাবিত করে না:
let num = 1; // গ্লোবাল ভেরিয়েবল
function func() {
let num = 2; // লোকাল ভেরিয়েবল
console.log(num);
}
func(); // ফাংশন কল করি, আউটপুট হবে 2
console.log(num); // আউটপুট হবে 1 - গ্লোবাল ভেরিয়েবল পরিবর্তন হয়নি
কিন্তু, যদি আমরা let লিখতে ভুলে যায়
লোকাল ভেরিয়েবল num ডিক্লেয়ার করতে,
তবে ফাংশনের ভিতরে কোনো লোকাল ভেরিয়েবল
num তৈরি হবে না,
বরং শুধু গ্লোবাল ভেরিয়েবলটি পরিবর্তিত হবে:
let num = 1;
function func() {
num = 2; // let লিখতে ভুলে গেছি - বাইরের ভেরিয়েবল পরিবর্তন করছি
console.log(num);
}
func(); // ফাংশন কল করি, আউটপুট হবে 2
console.log(num); // আউটপুট হবে 2 - ভেরিয়েবল পরিবর্তন হয়েছে
এখানে দুটি পরিস্থিতি হতে পারে: হয় আমরা সত্যিই
গ্লোবাল ভেরিয়েবল পরিবর্তন করতে চেয়েছিলাম (তাহলে
সব ঠিক আছে), অথবা আমরা let লিখতে ভুলে গেছি
এবং Accidentally accidentally
গ্লোবাল ভেরিয়েবল পরিবর্তন করে ফেলেছি।
দ্বিতীয় ক্ষেত্রটি একটি সূক্ষ্ম ত্রুটি যা
স্ক্রিপ্টের অনিশ্চিত আচরণের দিকে নিয়ে যায়।
সুতরাং, সবসময় নতুন ভেরিয়েবল প্রবর্তন করার সময়
এটিকে let দিয়ে ডিক্লেয়ার করুন।
কোড রান না করে নির্ধারণ করুন কনসোলে কী আউটপুট হবে:
let num = 1;
function func() {
num = 2;
}
func();
console.log(num);
কোড রান না করে নির্ধারণ করুন কনসোলে কী আউটপুট হবে:
let num = 1;
function func() {
let num = 2;
}
func();
console.log(num);