JavaScript-এ ফাংশনে গ্লোবাল ভেরিয়েবল

JavaScript-এ (অন্যান্য ভাষায় বেশিরভাগ ক্ষেত্রে এটি এমন নয়) ফাংশনের বাইরে সংজ্ঞায়িত ভেরিয়েবলগুলি এই ফাংশনের ভিতরে দৃশ্যমান হবে। এই ধরনের ভেরিয়েবলগুলিকে গ্লোবাল বলা হয়। আসুন একটি উদাহরণ দেখি:

javascriptlet num = 1; // ফাংশনের বাইরে ভেরিয়েবল

function func() {
  console.log(num); // num ভেরিয়েবল ফাংশনের ভিতরে দৃশ্যমান
}

func(); // 1 প্রিন্ট করবে

আসলে ভেরিয়েবলটি অবশ্যই ফাংশন সংজ্ঞায়িত করার আগে নয়, বরং এটিকে কল করার আগে সংজ্ঞায়িত করতে হবে:

javascriptfunction func() {
  console.log(num);
}

let num = 1; // ফাংশনের বাইরে ভেরিয়েবল
func();      // 1 প্রিন্ট করবে

যদি ভেরিয়েবলের মান পরিবর্তন করা হয় এবং তার পরে প্রতিবার ফাংশনটি কল করা হয় - console.log প্রতিবার ভিন্ন ফলাফল দেখাবে:

javascriptfunction func() {
  console.log(num);
}

let num; // ভেরিয়েবল ঘোষণা করি

num = 1; // মান 1 সেট করুন
func();  // 1 প্রিন্ট করবে

num = 2; // মান 2 সেট করুন
func();  // 2 প্রিন্ট করবে

যদি আমাদের কয়েকটি ফাংশন থাকে, তাহলে গ্লোবাল ভেরিয়েবল এই ফাংশনগুলির প্রতিটিতে অ্যাক্সেসযোগ্য হবে:

javascriptfunction func1() {
  console.log(num);
}

function func2() {
  console.log(num);
}

let num = 1;

func1(); // 1 প্রিন্ট করবে
func2(); // 1 প্রিন্ট করবে

যদি ফাংশনগুলির একটিতে গ্লোবাল ভেরিয়েবলের সাথে পরিবর্তন ঘটে, তাহলে সেই ভেরিয়েবলটি এই ভেরিয়েবল ব্যবহার করা সমস্ত ফাংশনে পরিবর্তিত হবে:

javascriptfunction func1() {
  console.log(num);
  num++; // গ্লোবাল ভেরিয়েবল পরিবর্তন করি
}

function func2() {
  console.log(num);
}

let num = 1;

func1(); // 1 প্রিন্ট করবে
func2(); // 2 প্রিন্ট করবে

যেহেতু যেকোনো ফাংশন সহজেই গ্লোবাল ভেরিয়েবল পরিবর্তন করতে পারে, তাই তাদের ব্যবহার শনাক্ত করা কঠিন ত্রুটির একটি উৎস। এই কারণে স্ক্রিপ্টে গ্লোবাল ভেরিয়েবলের ব্যবহার কমিয়ে আনা উচিত। এটি কাম্য যে সেগুলি মোটেও না থাকে বা সবচেয়ে ন্যূনতম সংখ্যক থাকে।

Задание 1

কোড রান না করে নির্ধারণ করুন, কনসোলে কী প্রিন্ট হবে:

javascriptlet num = 1;
    
function func() {
  console.log(num);
}

func();
Задание 2

কোড রান না করে নির্ধারণ করুন, কনসোলে কী প্রিন্ট হবে:

javascriptlet num = 1;
    
function func() {
  console.log(num);
}

num = 2;
func();
Задание 3

কোড রান না করে নির্ধারণ করুন, কনসোলে কী প্রিন্ট হবে:

javascriptfunction func() {
  console.log(num);
}

let num;

num = 1;
func();

num = 2;
func();