isFinite function
isFinite function သည် parameter တစ်ခုသည် အဆုံးသတ်ဂဏန်း (finite number) (ဆိုလိုသည်မှာ စာကြောင်း၊ array စသည်များမဟုတ်ဘဲ၊ ပြီးတော့ အပေါင်းအနန္တကြီး (plus infinity) သို့မဟုတ် အနုတ်အနန္တကြီး (minus infinity) မဟုတ်ခြင်း) ဟုတ်မဟုတ်စစ်ဆေးရန် ဖြစ်သည်။
ဤ function သည် မည်သို့အလုပ်လုပ်သနည်း။ အကယ်၍ ဂဏန်းသည် အပေါင်းအနန္တကြီး (ဆိုလိုသည်မှာ Infinity) သို့မဟုတ် အနုတ်အနန္တကြီး သို့မဟုတ် ဂဏန်းမဟုတ်သောတန်ဖိုး (ဆိုလိုသည်မှာ NaN) ဖြစ်နေပါက false ကို ပြန်ပေးမည်။ ကျန်သောအခြေအနေများတွင် true ကို ပြန်ပေးမည်။ ဆိုလိုသည်မှာ စာကြောင်းများ၊ array များစသည် တို့သည် NaN အဖြစ်သို့ ပြောင်းလဲသွားပြီး သက်ဆိုင်ရာ false ကို ပြန်ပေးမည်။
သို့သော် ခြွင်းချက်များ ရှိပါသည်။ ဗလာစာကြောင်း '' သည် true ပြန်ပေးသည်၊ ကြားခြားနေရာများပါသော စာကြောင်း ' ' သည်လည်း true ပြန်ပေးသည်၊ null သည် true ပြန်ပေးသည်၊ true နှင့် false တန်ဖိုးများအတွက်လည်း true ပြန်ပေးသည်။
ဤသို့ဖြစ်ရခြင်းမှာ ထိုတန်ဖိုးများသည် NaN အဖြစ်သို့ မပြောင်းလဲဘဲ ဂဏန်းများအဖြစ်သို့ ပြောင်းလဲသွားသောကြောင့်ဖြစ်သည်။ အကယ်၍ သင်သည် ကြားခြားနေရာများပါသော စာကြောင်း၊ ယုတ္တိတန်ဖိုးများ (boolean values) နှင့် အထူးတန်ဖိုးများ (special values) ကို ဂဏန်းအဖြစ် မမှတ်ယူသော တကယ့်ကို တိကျသော ဂဏန်းစစ်ဆေးမှု လိုအပ်ပါက အောက်ပါ isNumeric function ကို သုံးပါ။
function isNumeric(num) {
return !isNaN(parseFloat(num)) && isFinite(num);
};
၎င်းသည် မည်သို့အလုပ်လုပ်သည်ကို ရှင်းလင်းကြည့်ရအောင်။
isFinite function သည် parameter ကို ဂဏန်းသို့ ပြောင်းလဲပြီး ၎င်းသည် Infinity, -Infinity သို့မဟုတ် NaN မဟုတ်ပါက true ပြန်ပေးသည်။
ထို့ကြောင့် ညာဘက်အပိုင်းသည် သိသိသာသာ ဂဏန်းမဟုတ်သော တန်ဖိုးများကို ဖယ်ရှားပေးမည်၊ သို့သော် true, false, null, ဗလာစာကြောင်း '' နှင့် ကြားခြားနေရာများပါသော စာကြောင်းတို့ကဲ့သို့သော တန်ဖိုးများကို ကျန်ရစ်စေမည်၊ အဘယ်ကြောင့်ဆိုသော် ၎င်းတို့သည် ဂဏန်းများအဖြစ်သို့ မှန်ကန်စွာ ပြောင်းလဲနိုင်သောကြောင့်ဖြစ်သည်။
ဤတန်ဖိုးများကို ဖယ်ရှားရန် parseFloat function လိုအပ်သည်။ ၎င်းသည် true, false, null, '', ' ' တို့အတွက် NaN ကို ပြန်ပေးမည်။ parseFloat function သည် ဤသို့အလုပ်လုပ်သည်။ ၎င်းသည် parameter ကို စာကြောင်းသို့ ပြောင်းလဲပေးသည်။ ဆိုလိုသည်မှာ true, false, null တို့သည် 'true', 'false', 'null' ဖြစ်သွားပြီး၊ ထို့နောက် ၎င်းမှ ဂဏန်းကို ဖတ်ယူသည်။ ဤသို့ပြုလုပ်ရာတွင် ဗလာစာကြောင်းနှင့် ကြားခြားနေရာများပါသော စာကြောင်းတို့သည် NaN ကို ပေးသည်။ ထို့နောက် parseFloat ၏ ရလဒ်ကို !isNaN ဖြင့် လုပ်ဆောင်ပြီး NaN အစား true သို့မဟုတ် false ရရှိရန် ဖြစ်သည်။
ရလဒ်အနေဖြင့် ဂဏန်း-စာကြောင်းများ (string-numbers) နှင့် ပုံမှန်ဂဏန်းများ မှလွဲ၍ အရာအားလုံးကို ဖယ်ရှားလိုက်သည်။
ဝါကျဖွဲ့စည်းပုံ (Syntax)
isFinite(တန်ဖိုး);
ဥပမာ
ယခု isFinite သည် true ကို ထုတ်ပြမည်။ အဘယ်ကြောင့်ဆိုသော် parameter သည် ဂဏန်းတစ်ခု ဖြစ်သောကြောင့်ဖြစ်သည်။
let num = 3;
console.log(isFinite(num));
ကုဒ်ကို လုပ်ဆောင်ခြင်း၏ ရလဒ်။
true
ဥပမာ
ယခု isFinite သည် false ကို ထုတ်ပြမည်။ အဘယ်ကြောင့်ဆိုသော် parameter သည် ဂဏန်းတစ်ခု မဟုတ်သောကြောင့်ဖြစ်သည်။
let num = 'abcde';
console.log(isFinite(num));
ကုဒ်ကို လုပ်ဆောင်ခြင်း၏ ရလဒ်။
false
ဥပမာ
ယခု isFinite သည် false ကို ထုတ်ပြမည်။ အဘယ်ကြောင့်ဆိုသော် parameter သည် အနန္တကြီး (infinity) ဖြစ်သောကြောင့်ဖြစ်သည်။
let num = Infinity;
console.log(isFinite(num));
ကုဒ်ကို လုပ်ဆောင်ခြင်း၏ ရလဒ်။
false
ဥပမာ
ယခု isFinite သည် false ကို ထုတ်ပြမည်။ အဘယ်ကြောင့်ဆိုသော် 1/0 - သည် အခြေခံအားဖြင့် Infinity (အနန္တကြီး) ဖြစ်သောကြောင့်ဖြစ်သည်။
let num = 1 / 0;
console.log(isFinite(num));
ကုဒ်ကို လုပ်ဆောင်ခြင်း၏ ရလဒ်။
false
ဥပမာ
ယခု isFinite သည် true ကို ထုတ်ပြမည်။ အဘယ်ကြောင့်ဆိုသော် ဗလာစာကြောင်း၊ ဂဏန်းမဟုတ်သော်လည်း၊ ဤသည်မှာ ခြွင်းချက်တစ်ခု ဖြစ်သောကြောင့်ဖြစ်သည်။
let num = '';
console.log(isFinite(num));
ကုဒ်ကို လုပ်ဆောင်ခြင်း၏ ရလဒ်။
true