JavaScript ရှိ function အမျိုးအစားကို ဘယ်လိုစစ်ဆေးမလဲ

အောက်ပါ ပြဿနာတွေမှာ သင်ဟာ function ကို Function Declaration သို့မဟုတ် Function Expression အဖြစ် သတ်မှတ်ထားတာကို ဆုံးဖြတ်ရပါမယ်။

ရိုးရှင်းတဲ့အခြေအနေတွေမှာ ဒါကို မျက်မြင်အားဖြင့် ခွဲခြားရတာ ခက်ခဲတာမျိုးမရှိပါဘူး။ ဒါပေမယ့် သင်လုပ်ထားတာမှန်ကန်ကြောင်း ဘယ်လိုစစ်ဆေးမလဲ။ Function Declaration နဲ့ Function Expression ကြားက ကွာခြားချက်ကို အသုံးပြုပါ- ပထမတစ်ခုကို သူ့ရဲ့သတ်မှတ်ချက်ရဲ့ အထက်မှာ ခေါ်ဆိုနိုင်ပေမယ့် ဒုတိယတစ်ခုကတော့ မခေါ်ဆိုနိုင်ပါဘူး။

ကျွန်ုပ်တို့မှာ ဒီလို function တစ်ခုရှိတယ်ဆိုပါစို့-

javascriptlet test = function() {
  console.log('!');
}

ဒီ function ကို သူ့ရဲ့သတ်မှတ်ချက်ရဲ့ မတိုင်ခင် ခေါ်ဆိုကြည့်ရအောင်-

javascripttest(); // console မှာ အမှားပေါ်လာရင် Function Expression ဖြစ်တယ်

let test = function() {
  console.log('!');
}

နောက်ထပ် ဥပမာတစ်ခု ကြည့်ရအောင်-

javascriptfunc(); // '!' ကို ပြမယ်ဆိုရင် Function Declaration ဖြစ်တယ်

function func() {
  console.log('!');
}

ကျွန်ုပ်တို့ရဲ့ function ရဲ့ ရှေ့မှာ plus sign တစ်ခုထည့်လိုက်ရအောင်-

javascriptfunc(); // console မှာ အမှားပေါ်လာရင် Function Expression ဖြစ်တယ်

+function func() {
  console.log('!');
}

အပေါ်က function ဟာ Function Expression ဖြစ်ပြီး ဘယ် variable ကိုမှ assign လုပ်ထားခြင်းမရှိတဲ့အတွက် သူ့ကို ဘယ်လိုမှ ခေါ်ဆိုလို့မရနိုင်ပါဘူး။ ဘာကြောင့်လဲဆိုတော့ func ဆိုတဲ့နာမည်နဲ့ သူ့ကိုရည်ညွှန်းလို့မရခြင်းကြောင့်ပါ။

Задание 1

အောက်တွင် ဖော်ပြထားသော function သည် Function Declaration သို့မဟုတ် Function Expression ဖြစ်ကြောင်း ဆုံးဖြတ်ပါ-

javascriptlet test = function func() {
  console.log('!');
}
Задание 2

အောက်တွင် ဖော်ပြထားသော function သည် Function Declaration သို့မဟုတ် Function Expression ဖြစ်ကြောင်း ဆုံးဖြတ်ပါ-

javascriptconsole.log(
  function func() {
    console.log('!');
  }
);
Задание 3

အောက်တွင် ဖော်ပြထားသော function သည် Function Declaration သို့မဟုတ် Function Expression ဖြစ်ကြောင်း ဆုံးဖြတ်ပါ-

javascript+function func() {
  console.log('!');
}
Задание 4

အောက်တွင် ဖော်ပြထားသော function သည် Function Declaration သို့မဟုတ် Function Expression ဖြစ်ကြောင်း ဆုံးဖြတ်ပါ-

javascriptfunction func() {
  console.log('!');
}