JavaScript ရအောင်
သော့ချက်စကားလုံးကို ES6 (2015)let
တွင် မိတ်ဆက်
ခဲ့သည် ။
သတ်မှတ်ထားသော let
ကိန်းရှင်များကို ပြန်လည်ကြေငြာ၍မရပါ။
သတ်မှတ်ထားသော let
ကိန်းရှင်များကို အသုံးမပြုမီ ကြေညာရပါမည်။
သတ်မှတ်ထားသော Variable let
များသည် Block Scope ရှိသည်။
ပြန်ကြေငြာလို့မရပါဘူး။
သတ်မှတ်ထားသော ကိန်းရှင်များlet
ကို ပြန်လည်ကြေငြာ၍ မရပါ ။
သင်သည် ကိန်းရှင်တစ်ခုကို မတော်တဆ ပြန်ကြေငြာ၍မရပါ။
သင် နှင့်အတူ let
ဤအရာကိုမလုပ်နိုင်ပါ:
ဥပမာ
let x = "John Doe";
let x = 0;
// SyntaxError: 'x' has already been declared
သင် နှင့်အတူ var
လုပ်နိုင်သည်-
ဥပမာ
var x = "John Doe";
var x = 0;
Block Scope
ES6 (2015) မတိုင်မီ၊ JavaScript တွင် Global Scope နှင့် Function Scope သာ ရှိသည်။
ES6 သည် အရေးကြီးသော JavaScript သော့ချက်စာလုံးအသစ်နှစ်ခုကို မိတ်ဆက်ပေးခဲ့သည်- let
နှင့် const
.
ဤသော့ချက်စကားလုံးနှစ်လုံး သည် JavaScript တွင် Block Scope ကိုပေးသည်။
{ } ဘလောက်တစ်ခုအတွင်းတွင် ဖော်ပြထားသော ကိန်းရှင်များကို ဘလောက်ပြင်ပမှ ဝင်ရောက်၍မရပါ။
ဥပမာ
{
let x = 2;
}
// x can NOT be used here
သော့ချက်စကားလုံး ဖြင့် ကြေညာ var
ထားသော ကိန်းရှင်များသည် ပိတ်ဆို့ခြင်းနယ်ပယ်တွင် မရှိနိုင်ပါ။
{ } ဘလောက်တစ်ခုအတွင်းတွင် ကြေငြာထားသော ပြောင်းလွဲမှုများကို ဘလောက်ပြင်ပမှ ဝင်ရောက်ကြည့်ရှုနိုင်ပါသည်။
ဥပမာ
{
var x = 2;
}
// x CAN be used here
Variable များကို ပြန်လည်ကြေငြာခြင်း။
သော့ချက်စာလုံး ကို အသုံးပြု၍ ကိန်းရှင်တစ်ခုအား ပြန်လည်ကြေငြာခြင်းသည် var
ပြဿနာများကို ဖြစ်စေနိုင်သည်။
ဘလောက်တစ်ခုအတွင်း ကိန်းရှင်တစ်ခုကို ပြန်လည်ကြေငြာခြင်းသည် ဘလောက်အပြင်ဘက်တွင် ကိန်းရှင်ကို ပြန်လည်ကြေငြာပေးလိမ့်မည်-
ဥပမာ
var x = 10;
// Here x is 10
{
var x = 2;
// Here x is 2
}
// Here x is 2
သော့ချက်စာလုံး ကို အသုံးပြု၍ ကိန်းရှင်တစ်ခုကို ပြန်လည်ကြေငြာခြင်းသည် let
ဤပြဿနာကို ဖြေရှင်းပေးနိုင်ပါသည်။
ဘလောက်တစ်ခုအတွင်း ကိန်းရှင်တစ်ခုကို ပြန်လည်ကြေငြာခြင်းသည် block ပြင်ပတွင် ကိန်းရှင်ကို ထပ်မံကြေငြာမည်မဟုတ်ပါ-
ဥပမာ
let x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
Browser ပံ့ပိုးမှု
let
သော့ချက်စကားလုံးကို Internet Explorer 11 သို့မဟုတ် အစောပိုင်းတွင် အပြည့်အဝ မပံ့ပိုးပါ ။
အောက်ပါဇယားသည် let
သော့ချက်စကားလုံးအတွက် အပြည့်အဝပံ့ပိုးမှုဖြင့် ပထမဆုံးဘရောက်ဆာဗားရှင်းများကို သတ်မှတ်ဖော်ပြသည်-
Chrome 49 | Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
Mar, 2016 | Jul, 2015 | Jan, 2015 | Sep, 2017 | Mar, 2016 |
ပြန်လည်ကြေငြာခြင်း။
JavaScript variable ကို ပြန်လည်ကြေငြာခြင်းသည် var
ပရိုဂရမ်တစ်ခုရှိ မည်သည့်နေရာတွင်မဆို ခွင့်ပြုသည်-
ဥပမာ
var x = 2;
// Now x is 2
var x = 3;
// Now x is 3
let
တူညီသောဘလောက်ရှိ ကိန်းရှင်တစ်ခုကို ထပ်မံကြေငြာခြင်းအား ခွင့်မပြုပါ -
ဥပမာ
var x = 2; // Allowed
let x = 3; // Not allowed
{
let x = 2; // Allowed
let x = 3 // Not allowed
}
{
let x = 2; // Allowed
var x = 3 // Not allowed
}
let
အခြားဘလောက်တစ်ခုတွင်၊ IS ဖြင့် ကိန်းရှင်တစ်ခုကို ပြန်လည်ကြေငြာခြင်းကို ခွင့်ပြုသည်-
ဥပမာ
let x = 2; // Allowed
{
let x = 3; // Allowed
}
{
let x = 4; // Allowed
}
Hoisting လုပ်ပါစေ။
သတ်မှတ်ထားသော ကိန်းရှင်များ var
ကို ထိပ် တွင်တင်ထားပြီး အချိန်မရွေး အစပြုနိုင်ပါသည်။
အဓိပ္ပါယ်- ၎င်းကို မကြေငြာမီ သင်သည် ကိန်းရှင်ကို အသုံးပြုနိုင်သည်။
ဥပမာ
ဒါက OK-
carName = "Volvo";
var carName;
Hoisting အကြောင်းပိုမိုလေ့လာလိုပါက JavaScript Hoisting အခန်းကိုလေ့လာပါ ။
သတ်မှတ်ထားသော let
ကိန်းရှင်များကို ဘလောက်၏ထိပ်တွင် ချိတ်ထားသော်လည်း အစပြု၍မရပါ။
အဓိပ္ပါယ်- let
၎င်းကို မကြေငြာမီ ကိန်းရှင်တစ်ခုကို အသုံးပြုခြင်းသည် ရလဒ်တစ်ခု ဖြစ်လာမည်ဖြစ်သည်
ReferenceError
။
ဥပမာ
carName = "Saab";
let carName = "Volvo";