JavaScript လွှင့်တင်ခြင်း။
Hoisting သည် ကြေငြာချက်များကို ထိပ်ဆုံးသို့ ရွှေ့ရန် JavaScript ၏ မူရင်း အပြုအမူဖြစ်သည်။
JavaScript ကြေငြာချက်များကို လွှင့်တင်ထားသည်။
JavaScript တွင်၊ ၎င်းကိုအသုံးပြုပြီးနောက် variable ကိုကြေငြာနိုင်သည်။
တစ်နည်းပြောရရင်တော့; မကြေငြာခင်မှာ variable ကိုသုံးနိုင်ပါတယ်။
ဥပမာ 1 သည် ဥပမာ 2 နှင့်တူညီသောရလဒ်ကိုပေးသည် :
ဥပမာ ၁
x = 5; // Assign 5 to x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x;
// Display x in the element
var x; // Declare x
ဥပမာ ၂
var x; // Declare x
x = 5; // Assign 5 to x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x;
// Display x in the element
ဒါကိုနားလည်ဖို့အတွက် "hoisting" ဆိုတဲ့ အသုံးအနှုန်းကို နားလည်ရပါမယ်။
Hoisting သည် ကြေငြာချက်အားလုံးကို လက်ရှိနယ်ပယ်၏ ထိပ်သို့ ရွှေ့ရန် JavaScript ၏ မူရင်းအပြုအမူဖြစ်သည်။
let and const သော့ချက်စာလုံးများ
သတ်မှတ်ထားသော ကိန်းရှင်များ let
ကို const
ဘလောက်၏ထိပ်တွင် တင်ထားသော်လည်း အစပြု၍မရပါ ။
အဓိပ္ပါယ်- ကုဒ်တုံးသည် ကိန်းရှင်ကို သိရှိသော်လည်း ၎င်းကို မကြေငြာမချင်း ၎င်းကို အသုံးမပြုနိုင်ပါ။
let
မကြေငြာမီ variable
ကိုအသုံးပြုခြင်းသည် a ရလဒ်ဖြစ်လိမ့်မည် ReferenceError
။
ကိန်းရှင်သည် ပိတ်ဆို့ခြင်းစတင်ချိန်မှ ကြေညာသည်အထိ "ယာယီသေဆုံးဇုန်" တွင် ရှိနေသည်-
ဥပမာ
၎င်းသည်ReferenceError
:
carName = "Volvo";
let carName;
ကိန်းရှင် တစ်ခုကို မကြေငြာမီ အသုံးပြုခြင်း const
သည် syntax error ဖြစ်ပြီး၊ ထို့ကြောင့် code သည် ရိုးရိုးရှင်းရှင်းပင် လုပ်ဆောင်မည်မဟုတ်ပါ။
ဥပမာ
ဤကုဒ်သည် အလုပ်လုပ်မည်မဟုတ်ပါ။
carName = "Volvo";
const carName;
JS Let / Const တွင် let and const အကြောင်းပိုမိုဖတ်ပါ ။
JavaScript အစပြုခြင်းများကို လွှင့်မထားပါ။
JavaScript သည် ကြေငြာချက်များကို လွှင့်တင်ခြင်းသာဖြစ်ပြီး ကနဦးပြုလုပ်ခြင်းမဟုတ်ပါ။
ဥပမာ 1 သည် ဥပမာ 2 နှင့် တူညီသောရလဒ်ကို မ ပေးပါ ။
ဥပမာ ၁
var x = 5; // Initialize x
var y = 7; // Initialize y
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
ဥပမာ ၂
var x = 5; // Initialize x
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
var y = 7; // Initialize y
နောက်ဆုံးဥပမာတွင် y ကို သတ်မှတ်မထားကြောင်း အဓိပ္ပာယ်ရှိပါသလား။
အဘယ်ကြောင့်ဆိုသော် ကြေငြာချက် (var y) သာလျှင် ကနဦးသတ်မှတ်ခြင်း (=7) ကို ထိပ်တွင်တင်ထားသောကြောင့်ဖြစ်သည်။
hoisting ကြောင့် y ကို အသုံးမပြုမီတွင် ကြေငြာထားသော်လည်း အစပြုခြင်းများကို လွှင့်မပစ်သောကြောင့် y ၏တန်ဖိုးကို သတ်မှတ်မထားပါ။
ဥပမာ 2 သည် စာရေးခြင်းနှင့် အတူတူပင်ဖြစ်သည်
ဥပမာ
var x = 5; // Initialize x
var y; // Declare y
elem = document.getElementById("demo"); // Find an element
elem.innerHTML = x + " " + y; // Display x and y
y = 7; // Assign 7 to y
ထိပ်တွင် သင့်ပြောင်းလဲမှုများကို ကြေညာပါ။
Hoisting သည် JavaScript ၏ အမည်မသိ သို့မဟုတ် လျစ်လျူရှုထားသော အပြုအမူတစ်ခု (ဆော့ဖ်ဝဲရေးသားသူအများအပြားအတွက်) ဖြစ်သည်။
ဆော့ဖ်ဝဲရေးသားသူသည် လွှင့်တင်ခြင်းကို နားမလည်ပါက၊ ပရိုဂရမ်များတွင် ချို့ယွင်းချက်များ (အမှားအယွင်းများ) ပါဝင်နိုင်သည်။
bug များကိုရှောင်ရှားရန်၊ နယ်ပယ်တိုင်း၏အစတွင် ကိန်းရှင်အားလုံးကို အမြဲကြေငြာပါ။
ဤသည်မှာ JavaScript ကုဒ်ကို ဘာသာပြန်ပုံဖြစ်သောကြောင့်၊ ၎င်းသည် အမြဲတမ်း ကောင်းမွန်သော စည်းမျဉ်းတစ်ခုဖြစ်သည်။
တင်းကျပ်သောမုဒ်တွင် JavaScript သည် ကိန်းရှင်များကို မကြေငြာပါက အသုံးပြုရန် ခွင့်မပြုပါ။ နောက်အခန်းတွင် "တင်းကျပ်သောအသုံးပြုမှု" ကို
လေ့လာ ပါ။