JavaScript ရှိ ဖန်ရှင်များအတွင်း တူညီသော ကိန်းရှင်အမည်များ

ဖန်ရှင်၏ အပြင်ဘက်ရော အတွင်းဘက်မှာပါ num ဟူသော ကိန်းရှင်ရှိနေသည်ဆိုပါစို့။ ဤသို့ဖြစ်လျှင် လိုက်ကော ကိန်းရှင် num ပေါ်တွင် ပြုလုပ်သော မည်သည့်ပြောင်းလဲမှုကမှ ဂလိုဘယ် ကိန်းရှင် num အပေါ်သို့ လုံးဝသက်ရောက်မှုမရှိပါ။

javascriptlet num = 1; // ဂလိုဘယ် ကိန်းရှင်

function func() {
  let num = 2; // လိုက်ကော ကိန်းရှင်
  console.log(num);
}
func(); // ဖန်ရှင်ကို ခေါ်သည်၊ 2 ကို ထုတ်ပြမည်

console.log(num); // 1 ကို ထုတ်ပြမည် - ဂလိုဘယ် ကိန်းရှင် မပြောင်းလဲပါ

သို့သော် လိုက်ကော ကိန်းရှင် num ကို let ဖြင့် ကြေညာရန် မေ့နေပါက ဖန်ရှင်အတွင်း၌ လိုက်ကော ကိန်းရှင် num အသစ် မဖန်တီးတော့ဘဲ ဂလိုဘယ် ကိန်းရှင်ကို ပြောင်းလဲလိုက်သလို ဖြစ်သွားမည်။

javascriptlet num = 1;

function func() {
  num = 2; // let ရေးရန် မေ့နေသည် - အပြင်က ကိန်းရှင်ကို ပြောင်းနေသည်
  console.log(num);
}
func(); // ဖန်ရှင်ကို ခေါ်သည်၊ 2 ကို ထုတ်ပြမည်

console.log(num); // 2 ကို ထုတ်ပြမည် - ကိန်းရှင် ပြောင်းသွားသည်

ဤနေရာတွင် အခြေအနေ နှစ်မျိုးရှိနိုင်သည်။ တစ်ခုမှာ ကျွန်ုပ်တို့ ဂလိုဘယ် ကိန်းရှင်ကို ပြောင်းလိုသည်မှန်း (ထိုအခါ အားလုံး အဆင်ပြေသည်)၊ နောက်တစ်ခုမှာ ကျွန်ုပ်တို့ let ကို မေ့ပြီး မတော်တဆ ဂလိုဘယ် ကိန်းရှင်ကို ပြောင်းလဲမိခြင်း ဖြစ်သည်။

ဒုတိယအခြေအနေသည် စကရစ်ပ္တ်၏ အပြုအမူကို မခန့်မှန်းနိုင်အောင် ဦးတည်စေသည့် ဖမ်းရခက်သော အမှားတစ်ခု ဖြစ်သည်။ ထို့ကြောင့် အမြဲတမ်း၊ ကိန်းရှင် အသစ်တစ်ခု မိတ်ဆက်တိုင်း ၎င်းကို let ဖြင့် ကြေညာပါ။

Задание 1

ကုဒ်ကို မစမ်းကြည့်ဘဲ console တွင် အဘယ်အရာ ပေါ်လာမည်ကို သတ်မှတ်ပါ။

javascriptlet num = 1;

function func() {
  num = 2;
}
func();

console.log(num);
Задание 2

ကုဒ်ကို မစမ်းကြည့်ဘဲ console တွင် အဘယ်အရာ ပေါ်လာမည်ကို သတ်မှတ်ပါ။

javascriptlet num = 1;

function func() {
  let num = 2;
}
func();

console.log(num);