JavaScript တွင် အပြင်ဘက်နှင့် အတွင်းဘက်လုပ်ဆောင်ချက်များ၏ ပါရာမီတာများ

အပြင်ဘက်လုပ်ဆောင်ချက်နှင့် အတွင်းဘက်လုပ်ဆောင်ချက် နှစ်ခုစလုံးသည် ပါရာမီတာများကို လက်ခံရရှိစေရန် ပြုလုပ်ကြပါစို့:

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

ကုဒ်ကို မစတင်မီ မည်သည့်အရာကို console တွင် ပြသမည်ကို သတ်မှတ်ပါ:

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

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

ကုဒ်ကို မစတင်မီ မည်သည့်အရာကို console တွင် ပြသမည်ကို သတ်မှတ်ပါ:

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

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

ကုဒ်ကို မစတင်မီ မည်သည့်အရာကို console တွင် ပြသမည်ကို သတ်မှတ်ပါ:

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

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

ကုဒ်ကို မစတင်မီ မည်သည့်အရာကို console တွင် ပြသမည်ကို သတ်မှတ်ပါ:

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

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

ကုဒ်ကို မစတင်မီ မည်သည့်အရာကို console တွင် ပြသမည်ကို သတ်မှတ်ပါ:

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

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

ကုဒ်ကို မစတင်မီ မည်သည့်အရာကို console တွင် ပြသမည်ကို သတ်မှတ်ပါ:

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

test(1);