JavaScript ရှိ ဖန်ရှင်များအတွင်း တူညီသော ကိန်းရှင်အမည်များ
ဖန်ရှင်၏ အပြင်ဘက်ရော အတွင်းဘက်မှာပါ
num ဟူသော ကိန်းရှင်ရှိနေသည်ဆိုပါစို့။
ဤသို့ဖြစ်လျှင် လိုက်ကော ကိန်းရှင် num ပေါ်တွင်
ပြုလုပ်သော မည်သည့်ပြောင်းလဲမှုကမှ ဂလိုဘယ် ကိန်းရှင်
num အပေါ်သို့ လုံးဝသက်ရောက်မှုမရှိပါ။
let num = 1; // ဂလိုဘယ် ကိန်းရှင်
function func() {
let num = 2; // လိုက်ကော ကိန်းရှင်
console.log(num);
}
func(); // ဖန်ရှင်ကို ခေါ်သည်၊ 2 ကို ထုတ်ပြမည်
console.log(num); // 1 ကို ထုတ်ပြမည် - ဂလိုဘယ် ကိန်းရှင် မပြောင်းလဲပါ
သို့သော် လိုက်ကော ကိန်းရှင် num ကို
let ဖြင့် ကြေညာရန် မေ့နေပါက ဖန်ရှင်အတွင်း၌
လိုက်ကော ကိန်းရှင် num အသစ် မဖန်တီးတော့ဘဲ
ဂလိုဘယ် ကိန်းရှင်ကို ပြောင်းလဲလိုက်သလို ဖြစ်သွားမည်။
let num = 1;
function func() {
num = 2; // let ရေးရန် မေ့နေသည် - အပြင်က ကိန်းရှင်ကို ပြောင်းနေသည်
console.log(num);
}
func(); // ဖန်ရှင်ကို ခေါ်သည်၊ 2 ကို ထုတ်ပြမည်
console.log(num); // 2 ကို ထုတ်ပြမည် - ကိန်းရှင် ပြောင်းသွားသည်
ဤနေရာတွင် အခြေအနေ နှစ်မျိုးရှိနိုင်သည်။ တစ်ခုမှာ
ကျွန်ုပ်တို့ ဂလိုဘယ် ကိန်းရှင်ကို ပြောင်းလိုသည်မှန်း (ထိုအခါ
အားလုံး အဆင်ပြေသည်)၊ နောက်တစ်ခုမှာ ကျွန်ုပ်တို့
let ကို မေ့ပြီး မတော်တဆ ဂလိုဘယ် ကိန်းရှင်ကို
ပြောင်းလဲမိခြင်း ဖြစ်သည်။
ဒုတိယအခြေအနေသည် စကရစ်ပ္တ်၏ အပြုအမူကို
မခန့်မှန်းနိုင်အောင် ဦးတည်စေသည့် ဖမ်းရခက်သော
အမှားတစ်ခု ဖြစ်သည်။ ထို့ကြောင့် အမြဲတမ်း၊ ကိန်းရှင်
အသစ်တစ်ခု မိတ်ဆက်တိုင်း ၎င်းကို let ဖြင့်
ကြေညာပါ။
ကုဒ်ကို မစမ်းကြည့်ဘဲ console တွင် အဘယ်အရာ ပေါ်လာမည်ကို သတ်မှတ်ပါ။
let num = 1;
function func() {
num = 2;
}
func();
console.log(num);
ကုဒ်ကို မစမ်းကြည့်ဘဲ console တွင် အဘယ်အရာ ပေါ်လာမည်ကို သတ်မှတ်ပါ။
let num = 1;
function func() {
let num = 2;
}
func();
console.log(num);