isFinite ֆունկցիան
isFinite ֆունկցիան պարամետրը ստուգելու համար,
որ այն վերջավոր թիվ է (այսինքն՝
ոչ տող, զանգված և այլն, և ոչ պլյուս
կամ մինուս անսահմանություն)։
Ինչպես է աշխատում այս ֆունկցիան․ այն կվերադարձնի false,
եթե թիվը պլյուս կամ մինուս անսահմանություն է
(այսինքն Infinity)
կամ ոչ թիվ (այսինքն NaN),
մնացած դեպքերում կվերադարձնի true։
Այսինքն՝ տողերը, զանգվածները և այլն կվերածվեն
NaN և, համապատասխանաբար, կվերադարձնեն false։
Սակայն կան բացառություններ․ դատարկ տողը
'' վերադարձնում է true, բացատներով տողը ' '
նույնպես վերադարձնում է true, null
վերադարձնում է true, true և false
արժեքների դեպքում նույնպես վերադարձվում է true։
Սա տեղի է ունենում, քանի որ այդ արժեքները
վերածվում են թվերի, և ոչ թե NaN։
Եթե Ձեզ անհրաժեշտ է իսկապես ճշգրիտ ստուգում
թվի համար, որն բացատներով տողը չի համարում թիվ,
տրամաբանական և հատուկ արժեքներ
- օգտագործեք հետևյալ isNumeric ֆունկցիան․
function isNumeric(num) {
return !isNaN(parseFloat(num)) && isFinite(num);
};
Եկեք հասկանանք, թե ինչպես է այն աշխատում։
isFinite ֆունկցիան պարամետրը
վերածում է թվի և վերադարձնում է true, եթե այն Infinity,
-Infinity կամ NaN չէ։
Այսպիսով, աջ մասը կմերժի ակնհայտ
ոչ թվերը, բայց կթողնի այնպիսի արժեքներ,
ինչպիսիք են true, false, null, դատարկ տողը '' և
բացատներով տողը, քանի որ դրանք ճիշտ են վերածվում
թվերի։
Այդ արժեքները մերժելու համար անհրաժեշտ է
parseFloat ֆունկցիան,
որը true, false, null, '', ' '
դեպքերում կվերադարձնի NaN։ parseFloat ֆունկցիան այսպես է աշխատում․ այն
պարամետրը վերածում է տողի, այսինքն՝ true,
false, null դառնում են 'true', 'false',
'null', ապա կարդում է դրանցից թիվը,
իսկ դատարկ տողը և բացատներով տողը
տալիս են NaN։ Ապա parseFloat-ի արդյունքը մշակվում է
!isNaN-ի միջոցով,
true կամ false ստանալու համար NaN-ի փոխարեն։
Արդյունքում մերժվում է ամենը, բացի թվային տողերից
և սովորական թվերից։
Շարահյուսություն
isFinite(արժեք);
Օրինակ
Հիմա isFinite-ը կարտածի true,
քանի որ պարամետրը թիվ է․
let num = 3;
console.log(isFinite(num));
Կոդի կատարման արդյունքը․
true
Օրինակ
Հիմա isFinite-ը կարտածի false,
քանի որ պարամետրը թիվ չէ․
let num = 'abcde';
console.log(isFinite(num));
Կոդի կատարման արդյունքը․
false
Օրինակ
Հիմա isFinite-ը կարտածի false,
քանի որ պարամետրը անսահմանություն է․
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