JavaScript ရှိ if-else ထဲရှိ ကိန်းရှင်များ၏ မြင်ကွင်းပမာဏ
ရိုးရှင်းစေရန်အတွက် အမြဲတမ်းအလုပ်လုပ်သော အခြေအနေတစ်ခု ကျွန်ုပ်တို့မှာ ရှိသည်ဆိုပါစို့:
if (true) {
}
အောက်ပါကုဒ်ကို ကြည့်ရှုကြပါစို့:
if (true) {
let res = '!';
}
console.log(res);
သင်မြင်သည့်အတိုင်း၊ ကိန်းရှင် res ထဲသို့
တန်ဖိုး '!' ရေးထည့်သင့်သည်။ သို့သော်
ဤကုဒ်ကို အလုပ်လုပ်စေပါက ကွန်စိုးတွင် အမှားတစ်ခု
�ေါ်လာမည်ဖြစ်သည်!
အကြောင်းမှာ တိုက်ရိုက်ကွင်းစကွင်းပိတ်များအတွင်း ကြေညာထားသော ကိန်းရှင်များသည် ထိုကွင်းစကွင်းပိတ်များ အတွင်းတွင်သာ မြင်နိုင်ပြီး အပြင်ဘက်တွင် မမြင်နိုင်ပါ။ သိပ္ပံနည်းကျပြောရလျှင် ဤနေရာတွင် ကိန်းရှင်များ၏ မြင်ကွင်းပမာဏ အကြောင်း ပြောနေခြင်းဖြစ်သည်။
တိုက်ရိုက်ကွင်းစကွင်းပိတ်များအတွင်း ကြေညာထားသော ကိန်းရှင်များ၏ မြင်ကွင်းပမာဏသည် ထိုတိုက်ရိုက်ကွင်းစကွင်းပိတ်များသာဖြစ်သည်ဟု ပြောဆိုနိုင်သည်။ သို့သော်၊ အကယ်၍ ကိန်းရှင်ကို တိုက်ရိုက်ကွင်းစကွင်းပိတ်များ၏ အပြင်ဘက်တွင် ကြေညာထားပါက ၎င်းအား အတွင်းဘက်နှင့် အပြင်ဘက်နှစ်ခုလုံးတွင် မြင်နိုင်ပါသည်:
let res; // ကိန်းရှင်ကို အပြင်ဘက်တွင် ကြေညာသည်
if (true) {
res = '!';
}
console.log(res); // '!' ကို ပြသမည်
အောက်ပါဥပမာတွင် ကိန်းရှင် res ထဲသို့
အခြေအနေပေါ် မူတည်၍ တန်ဖိုး 1 သို့မဟုတ်
တန်ဖိုး 2 ရေးထည့်ထားသည်:
let num = 5;
if (num >= 0) {
let res = 1;
} else {
let res = 2;
}
console.log(res);
သို့သော် ဤကုဒ်ကို အလုပ်လုပ်စေပါက ကွန်စိုးတွင် အမှားတစ်ခု ပေါ်လာမည်ဖြစ်သည်။ သင်ယခုနားလည်ပြီဖြစ်သည့်အတိုင်း ပြဿနာအားလုံးသည် ကိန်းရှင်များ၏ မြင်နိုင်မှုအပေါ်တွင် မူတည်နေသည်။ ပြဿနာကိုဖြေရှင်းရန် ကိန်းရှင်ကို အခြေအနေ၏ အပြင်ဘက်တွင် ကြေညာကြပါစို့:
let test = true;
let res; // ကိန်းရှင်ကို အခြေအနေ၏ အပြင်ဘက်တွင် ကြေညာသည်
if (test) {
res = 1;
} else {
res = 2;
}
console.log(res); // 1 ကို ပြသမည်
အောက်တွင်ပေးထားသော ကုဒ်၏ ရေးသူသည် အသက် 18 နှစ်ပြည့်မှုကို
စစ်ဆေးလိုသည်။ သို့သော် ကုဒ်သည် အလုပ်မလုပ်ပါ။
ကုဒ်ရေးသူ၏ အမှားကို ပြင်ဆင်ပေးပါ။ ပြဿနာရှိသောကုဒ်မှာ အောက်ပါအတိုင်းဖြစ်သည်:
let age = 17;
if (age >= 18) {
let adult = true;
} else {
let adult = false;
}
console.log(adult);