জাভাস্ক্রিপ্টে বাহ্যিক এবং অভ্যন্তরীণ ফাংশনের প্যারামিটার

আসুন এমন করি যাতে বাহ্যিক ফাংশন এবং অভ্যন্তরীণ উভয়ই প্যারামিটার গ্রহণ করে:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
}

অভ্যন্তরীণ ফাংশন কল করতে বাহ্যিক ফাংশনের প্যারামিটার পাঠানো যাক:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // 1 প্রদর্শন করবে
  }
  
  func(num); //!! প্যারামিটার পাঠাচ্ছি
}

test(1); // সংখ্যাটি প্যারামিটার হিসেবে পাঠানো হচ্ছে

এর ফলে, অভ্যন্তরীণ ফাংশনে num ভেরিয়েবলটি প্যারেন্ট ফাংশন থেকে একটি বাহ্যিক ভেরিয়েবল হিসেবে এবং localNum ভেরিয়েবলটি অভ্যন্তরীণ ফাংশনের একটি স্থানীয় ভেরিয়েবল হিসেবে উপলব্ধ হবে।

এই উভয় ভেরিয়েবলের মান একই হবে:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num); // 1 প্রদর্শন করবে
    console.log(localNum); // 1 প্রদর্শন করবে
  }
  
  func(num);
}

test(1);

তাদের মধ্যে পার্থক্য হবে নিম্নরূপ: যদি অভ্যন্তরীণ ফাংশনে num ভেরিয়েবলটি পরিবর্তন করা হয় - তবে এটি বাহ্যিক ফাংশনেও পরিবর্তিত হবে:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // num ভেরিয়েবল পরিবর্তন করা হচ্ছে
  }
  
  func(num);   // প্যারামিটার পাঠানো হচ্ছে
  console.log(num);  // 2 প্রদর্শন করবে
}

test(1); // সংখ্যাটি প্যারামিটার হিসেবে পাঠানো হচ্ছে

আর localNum ভেরিয়েবলটি স্থানীয় হবে। এটির পরিবর্তন বাহ্যিক ফাংশনে কোনো পরিবর্তন ঘটাবে না। এবং localNum ভেরিয়েবলটি নিজেই অভ্যন্তরীণ ফাংশনের বাইরে দৃশ্যমান হবে না:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // num ভেরিয়েবল পরিবর্তন করা হচ্ছে
  }
  
  func(num); // প্যারামিটার পাঠানো হচ্ছে
}

test(1); // সংখ্যাটি প্যারামিটার হিসেবে পাঠানো হচ্ছে
Задание 1

কোড চালু না করে নির্ধারণ করুন কনসোলে কী 출력 হবে:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
  
  func(num);
}

test(1);
Задание 2

কোড চালু না করে নির্ধারণ করুন কনসোলে কী 출력 হবে:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
  
  func(num + 1);
}

test(1);
Задание 3

কোড চালু না করে নির্ধারণ করুন কনসোলে কী OUTPUT হবে:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num);
  }
  
  func(num + 1);
}

test(1);
Задание 4

কোড চালু না করে নির্ধারণ করুন কনসোলে কী OUTPUT হবে:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2;
  }
  
  func(num);
  console.log(num);
}

test(1);
Задание 5

কোড চালু না করে নির্ধারণ করুন কনসোলে কী OUTPUT হবে:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2;
  }
  
  func(num);
  console.log(localNum);
}

test(1);
Задание 6

কোড চালু না করে নির্ধারণ করুন কনসোলে কী OUTPUT হবে:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2;
  }
  
  func(num);
  console.log(num);
}

test(1);