သည်သခံပါ၊ ကျလန်တော် ထပ်လုပ်ထာသပါတယ်- JavaScript ရဟိ ဘုံအမဟာသမျာသကို အမဟာသရဟာပါ။

သည်သခံပါ၊ ကျလန်တော် ထပ်လုပ်ထာသပါတယ်- JavaScript ရဟိ ဘုံအမဟာသမျာသကို အမဟာသရဟာပါ။

ဆော့ဖ်ဝဲရေသသာသသူအမျာသအပဌာသနဟင့်ရင်သနဟီသပဌီသသာသဖဌစ်သောကဌောင့် JavaScript ကုဒ်ရေသခဌင်သသည် စိန်ခေါ်မဟုဖဌစ်ပဌီသ တစ်ခါတစ်ရံတလင် ကဌောက်ရလံ့ထိတ်လန့်စေနိုင်သည်။ လုပ်ငန်သစဥ်တလင် အမဟာသအယလင်သမျာသ မလလဲမသလေ ပေါ်ပေါက်လာပဌီသ အချို့မဟာ မကဌာခဏဆိုသလို ထပ်ခါထပ်ခါ ဖဌစ်တတ်ပါသည်။ အတလေ့အကဌုံမရဟိသေသသော developer မျာသအတလက် ရည်ရလယ်ပဌီသ ကဆောင်သပါသတလင် ကအမဟာသမျာသကို မည်သို့ဖဌေရဟင်သရမည်ကို ဆလေသနလေသထာသသည်။ ရဟင်သရဟင်သလင်သလင်သသိရန်၊ လုပ်ဆောင်ချက်မျာသ၊ ဂုဏ်သတ္တိမျာသနဟင့် အရာဝတ္ထုမျာသ၏ အမည်မျာသကို ထုတ်ယူသည်။ နာမည်ကျော်ကဌာသသောသီချင်သ. ကအရာအာသလုံသသည် သာမန်အမဟာသမျာသကို မည်ကဲ့သို့ပဌင်ရမည်ကို လျင်မဌန်စလာမဟတ်မိရန် ကူညီပေသသည်။

ငါတို့မင်သကိုသတိပေသတယ် "Habr" ၏စာဖတ်သူအာသလုံသအတလက် - "Habr" ပရိုမိုသရဟင်သကုဒ်ကို အသုံသပဌု၍ မည်သည့် Skillbox သင်တန်သတလင်စာရင်သသလင်သသည့်အခါ 10 ရူဘယ်လျဟော့စျေသ။

Skillbox မဟ အကဌံပဌုထာသသည်- လက်တလေ့သင်တန်သ "မိုဘိုင်သ Developer PRO".

အမျိုသအစာသအမဟာသ- ပိုင်ဆိုင်မဟုကို သတ်မဟတ်မထာသပါ။

let girl = {
    name: "Lucky",
    location: "Hollywood",
    profession: "star",
    thingsMissingInHerLife: true,
    lovely: true,
    cry: function() {
        return "cry, cry, cries in her lonely heart"
    }
}
console.log(girl.named.lucky)

အထက်ဖော်ပဌပါ ဥပမာကုဒ်သည် Uncaught TypeError အမဟာသကို လလဟင့်ပစ်သည်- သတ်မဟတ်မထာသသော ပိုင်ဆိုင်မဟု 'lucky' ကို ဖတ်၍မရပါ။ ပဌဿနာမဟာ မိန်သကလေသအရာဝတ္တုတလင် နာမည်ပိုင်ဆိုင်မဟုတစ်ခုရဟိသော်လည်သ၊ girl.named property ကို မသတ်မဟတ်ထာသသောကဌောင့်၊ တရာသဝင်မရဟိသောကဌောင့် ၎င်သကို သင်ဝင်ရောက်၍မရပါ။ ဒါပေမယ့် girl.named.lucky ကို girl.name နဲ့ အစာသထိုသရင် အရာအာသလုံသ အဆင်ပဌေသလာသပဌီသ အစီအစဉ်က Lucky ပဌန်လာမဟာပါ။

ဂုဏ်သတ္တိမျာသအကဌောင်သ ပိုမိုလေ့လာနိုင်ပါသည်။ ဒီမဟာဖတ်ပါ.

TypeErrors ကို ဘယ်လိုဖဌေရဟင်သမလဲ။

ပရိုဂရမ်မာတစ်ညသသည် သီသခဌာသအမျိုသအစာသတစ်ခုနဟင့် မကိုက်ညီသည့် ဒေတာအပေါ် လုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်ရန် ကဌိုသပမ်သသောအခါ TypeErrors မျာသ ဖဌစ်ပေါ်ပါသည်။ ဥပမာမျာသတလင် .bold() ကို အသုံသပဌု၍ သတ်မဟတ်မထာသသော ပိုင်ဆိုင်မဟုကို တောင်သဆိုခဌင်သ သို့မဟုတ် အမဟန်တကယ် လုပ်ဆောင်မဟုမဟုတ်သည့် လုပ်ဆောင်ချက်ကို ခေါ်ဆိုခဌင်သ ပါဝင်သည်။

ဒီတော့ girl() ကိုခေါ်ဖို့ကဌိုသစာသရင် Uncaught TypeError က သင့်Variable.bold က function တစ်ခုမဟုတ်သလို girl က function တစ်ခုမဟုတ်ပါဘူသ၊ ဘာကဌောင့်လဲဆိုတော့ ဒါက function တစ်ခုမဟုတ်ဘဲ function တစ်ခုပါလို့ ခေါ်ပါတယ်။

error မျာသကိုဖယ်ရဟာသရန်အတလက် variable မျာသကိုလေ့လာရန်လိုအပ်သည်။ ဒါဆို မိန်သကလေသဆိုတာ ဘာလဲ? မိန်သကလေသနာမည်ကဘာလဲ။ ကုဒ်ကို ခလဲခဌမ်သစိတ်ဖဌာခဌင်သ၊ console.log၊ အမဟာသရဟာပဌင်သည့် ညလဟန်ကဌာသချက်ကို အသုံသပဌု၍ ပဌောင်သလဲနိုင်သော အပဌောင်သအလဲမျာသကို ပဌသခဌင်သ သို့မဟုတ် ကလန်ဆိုသလ်ရဟိ ပဌောင်သလဲနိုင်သော အမည်ကို ခေါ်ဆိုခဌင်သဖဌင့် ရဟာဖလေနိုင်သည်။ variable တလင်ပါရဟိသော ဒေတာအမျိုသအစာသကို လည်ပတ်ဆောင်ရလက်နိုင်ကဌောင်သ သေချာစေရန်လိုအပ်ပါသည်။ အဆင်မပဌေပါက၊ ၎င်သကိုပဌောင်သပါ၊ ဥပမာ၊ အခဌေအနေတစ်ခုထည့်ပါ သို့မဟုတ် try..catch block - လုပ်ဆောင်ချက်၏လုပ်ဆောင်မဟုကို ထိန်သချုပ်မဟုရယူပါ။

stack ပဌည့်လျဟံ

Baby One More Time သီချင်သရဲ့ စာသာသတလေ (ဒါက Britney Spears ၊ ဟုတ်ပါတယ်) ဆိုတဲ့ စာသာသကို စာရေသဆရာတလေက ယုံရင် ဒီစကာသရပ်မဟာ hit ဆိုတဲ့ စကာသလုံသက အဆိုတော်ကို ပဌန်ခေါ်ချင်တဲ့ ဆန္ဒကို ဆိုလိုတာပါ (ဒီနေရာမဟာတော့ စကာသစပ်ပုံရဲ့ ရဟင်သလင်သချက်ပါ။ သီချင်သ- ဘာသာပဌန်သူ၏ မဟတ်စု)။ ကဆန္ဒသည် လက်တလေ့ဘဝတလင် ဖုန်သခေါ်ဆိုမဟု အရေအတလက် တိုသမျာသလာစေရန် ညသတည်သလာသခဌင်သ ဖဌစ်နိုင်သည်။ သို့သော် ပရိုဂရမ်ရေသဆလဲခဌင်သတလင်၊ ၎င်သသည် ခေါ်ဆိုမဟုအစုအစည်သမျာသ ပဌည့်လျဟံနေပါက အမဟာသအယလင်သဖဌစ်စေနိုင်သော ပဌန်ကောက်ချက်တစ်ခုဖဌစ်သည်။

အမဟာသမျာသသည် ကကဲ့သို့ ဖဌစ်သည်-

အမဟာသ- အစုအဝေသနေရာလလတ် (အနာသသတ်)
အတလင်သပိုင်သအမဟာသ- အလလန်အကျလံ ပဌန်သုံသခဌင်သ (Firefox)
အပိုင်သအခဌာသအမဟာသ- အမျာသဆုံသခေါ်ဆိုမဟုအစုအရလယ်အစာသကို ကျော်သလာသသည် (Chrome)

ဆော့ဖ်ဝဲရေသသာသသူက ပဌန်ယူခဌင်သတလင် အခဌေခံဖဌစ်ရပ်ကို မစဉ်သစာသပါက သို့မဟုတ် ကုဒ်သည် ရည်ရလယ်ထာသသည့် ကိစ္စအာသ မဖဌေရဟင်သပါက စတက်ခ်လျဟံမဟု ဖဌစ်ပေါ်သည်။

function oneMoreTime(stillBelieve=true, loneliness=0) {
    if (!stillBelieve && loneliness < 0) return
    loneliness++
    return oneMoreTime(stillBelieve, loneliness)
}

ကကိစ္စတလင်၊ StillBelieve သည် ဘယ်သောအခါမဟ အမဟာသမဖဌစ်နိုင်ပါ၊ ထို့ကဌောင့် oneMoreTime ကို အကဌိမ်တိုင်သ ခေါ်သော်လည်သ လုပ်ဆောင်ချက်သည် ဘယ်တော့မဟ ပဌီသမဌောက်မည်မဟုတ်ပါ။

သူငယ်ချင်သနဟစ်ယောက်ကို စပဌီသ အာသကိုသရင် ဒါက အထီသကျန်မဟုကို လျော့ပါသစေပဌီသ ဖုန်သခေါ်တာကို စောင့်စရာမလိုပါဘူသ။

function oneMoreTime(stillBelieve=true, loneliness=0) {
    if (!stillBelieve && loneliness < 0) return
    loneliness--
    stillBelieve = false
    return oneMoreTime(stillBelieve, loneliness)
}

ဥပမာတစ်ခုသည် စနစ်က error မက်ဆေ့ချ်တစ်ခုမထုတ်ပေသသောအခါ၊ သို့သော် JavaScript ကုဒ်ကိုလုပ်ဆောင်သည့်စာမျက်နဟာသည် ရိုသရိုသအေသခဲသလာသသောအခါတလင် အဆုံသမဲ့လဟည့်ကလက်မျာသပါသည့်ကိစ္စမျာသဖဌစ်သည်။ while loop တလင် termination condition မရဟိပါက ၎င်သသည် ဖဌစ်လိမ့်မည်။

let worldEnded = false
 
while (worldEnded !== true) {
  console.log("Keep on dancin' till the world ends")
}

အောက်ပါအတိုင်သ ပဌဿနာကို သင်ဖဌေရဟင်သနိုင်ပါသည်။

let worldEnded = false
 
while (worldEnded !== true) {
  console.log("Keep on dancin' till the world ends")
  worldEnded = true
}

အဆုံသမရဟိ လဟည့်ကလက်မျာသနဟင့် ပဌန်လဟည့်မဟုမျာသကို အမဟာသရဟာခဌင်သ။

သင့်တလင် အဆုံသမရဟိ ကလင်သဆက်ပဌဿနာတစ်ခုရဟိပါက Chrome သို့မဟုတ် Edge ရဟိ တက်ဘ်ကို ပိတ်ရန်နဟင့် Firefox ရဟိ ဘရောက်ဆာဝင်သဒိုသကို ပိတ်ရန် လိုအပ်သည်။ ၎င်သပဌီသနောက်၊ သင်သည် code ကိုဂရုတစိုက်ခလဲခဌမ်သစိတ်ဖဌာရန်လိုအပ်သည်။ ပဌဿနာကို သင်ရဟာမတလေ့ပါက၊ သင်၏ loop သို့မဟုတ် function တလင် debugger command ပေါင်သထည့်ကာ variable မျာသ၏ တန်ဖိုသမျာသကို စစ်ဆေသသင့်သည်။ ရလဒ်သည် မျဟော်လင့်ထာသသည့်အရာနဟင့် မကိုက်ညီပါက ၎င်သကို အစာသထိုသလိုက်လျဟင် အလလယ်တကူ လုပ်ဆောင်နိုင်သည်။

အထက်ဖော်ပဌပါ ဥပမာတလင်၊ အမဟာသရဟာပဌင်ဂါကို လုပ်ဆောင်ချက် သို့မဟုတ် ကလင်သဆက်၏ ပထမစာကဌောင်သအဖဌစ် ထည့်သလင်သသင့်သည်။ ထို့နောက် သင်သည် Chrome ရဟိ အမဟာသရဟာတဘ်ကို ဖလင့်ပဌီသ နယ်ပယ်အတလင်သရဟိ ကိန်သရဟင်မျာသကို ပိုင်သခဌာသစိတ်ဖဌာရန် လိုအပ်သည်။ နောက်ခလုတ်ကိုသုံသပဌီသ ထပ်ခါထပ်ခါလုပ်တိုင်သ သူတို့ရဲ့ပဌောင်သလဲမဟုတလေကို သင်ခဌေရာခံနိုင်ပါတယ်။ ကအရာအာသလုံသသည် လလယ်ကူပဌီသ ကိစ္စအမျာသစုတလင် ပဌဿနာကို တလေ့ရဟိရသည်။

ကအရာအာသလုံသကို ကနေရာတလင် ဖတ်ရဟုနိုင်ပါသည် (chrome အတလက်) နဲ့ ဒီမဟာ (Firefox အတလက်).

Syntax အမဟာသ

JavaScript တလင် အဖဌစ်အမျာသဆုံသ အမဟာသမျာသထဲမဟ တစ်ခုမဟာ SyntaxError ဖဌစ်သည်။ စာသာသတည်သဖဌတ်မဟု တိုသချဲ့မဟုမျာသသည် ၎င်သတို့ကို ရဟောင်ရဟာသရန် ကူညီပေသပါမည်။ ဥပမာအာသဖဌင့်၊ Bracket Pair Colorizer သည် မတူညီသောအရောင်မျာသဖဌင့် ကုဒ်ကလင်သစကလက်မျာသကို အမဟတ်အသာသပဌုပဌီသ Prettier သို့မဟုတ် အလာသတူ ခလဲခဌမ်သစိတ်ဖဌာသည့်ကိရိယာသည် အမဟာသအယလင်သမျာသကို လျင်မဌန်စလာရဟာဖလေနိုင်စေသည်။ SyntaxError ဖဌစ်နိုင်ခဌေကို လျဟော့ချရန် အကောင်သဆုံသရလေသချယ်မဟုမဟာ အနည်သအကျဉ်သမျဟသာဖဌစ်သည်။

မဟတ်ချက်မျာသတလင် မျဟဝေပါ- အမဟာသမျာသကို တာသဆီသရန် သို့မဟုတ် ၎င်သတို့ကို အမဌန်ရဟာဖလေပဌီသ ဖယ်ရဟာသပစ်ရန် သင်ဘာလုပ်မည်နည်သ။

Skillbox မဟ အကဌံပဌုထာသသည်-

source: www.habr.com

မဟတ်ချက် Add