Funkcija isFinite
Funkcija isFinite izmanto, lai pārbaudītu, vai parametrs
ir galīgs skaitlis (tas
ir, ne virkne, masīvs utt. un ne plus
vai mīnus bezgalība).
Kā šī funkcija strādā: tā atgriezīs false,
ja skaitlis ir plus vai mīnus bezgalība
(tas ir Infinity)
vai nav skaitlis (tas ir NaN),
visos citos gadījumos atgriezīs true.
Tas ir, virknes, masīvi utt. tiks pārveidoti
par NaN un attiecīgi atgriezīs false.
Tomēr ir izņēmumi: tukša virkne
'' atgriež true, virkne ar atstarpēm ' '
arī atgriež true, null
atgriež true, vērtībām true un false
arī tiek atgriezts true.
Tas notiek tāpēc, ka šīs vērtības
tiek pārveidotas par skaitļiem, nevis par NaN.
Ja jums ir nepieciešama tiešām precīza pārbaude
uz skaitli, kas neuzskata par skaitli virkni
no atstarpēm, loģiskās un speciālās vērtības
- izmantojiet šādu funkciju isNumeric:
function isNumeric(num) {
return !isNaN(parseFloat(num)) && isFinite(num);
};
Izpētīsim, kā tā darbojas.
Funkcija isFinite pārveido parametru
par skaitli un atgriež true, ja tas nav Infinity,
-Infinity vai NaN.
Tādējādi labā puse izslēgs acīmredzami
neskaitļus, bet atstās tādas vērtības
kā true, false, null, tukšo virkni '' un
virkni ar atstarpēm, jo tās korekti tiek pārveidotas
par skaitļiem.
Lai izslēgtu šīs vērtības, ir nepieciešama funkcija
parseFloat,
kas true, false, null, '', ' '
atgriezīs NaN. Tā darbojas funkcija parseFloat: tā
pārveido parametru par virkni, t.i., true,
false, null kļūst par 'true', 'false',
'null', un pēc tam nolasa no tās skaitli,
kamēr tukša virkne un virkne ar atstarpēm
dod NaN. Tad parseFloat rezultāts tiek apstrādāts
ar !isNaN,
lai iegūtu true vai false NaN vietā.
Rezultātā tiek izslēgts viss, izņemot skaitļu virknes
un parastos skaitļus.
Sintakse
isFinite(vērtība);
Piemērs
Šoreiz isFinite izvadīs true,
jo parametrs ir skaitlis:
let num = 3;
console.log(isFinite(num));
Koda izpildes rezultāts:
true
Piemērs
Šoreiz isFinite izvadīs false,
jo parametrs nav skaitlis:
let num = 'abcde';
console.log(isFinite(num));
Koda izpildes rezultāts:
false
Piemērs
Šoreiz isFinite izvadīs false,
jo parametrs ir bezgalība:
let num = Infinity;
console.log(isFinite(num));
Koda izpildes rezultāts:
false
Piemērs
Šoreiz isFinite izvadīs false,
jo 1/0 - tas būtībā ir Infinity
(bezgalība):
let num = 1 / 0;
console.log(isFinite(num));
Koda izpildes rezultāts:
false
Piemērs
Šoreiz isFinite izvadīs true,
jo tukša virkne, kas nav skaitlis,
- ir izņēmums:
let num = '';
console.log(isFinite(num));
Koda izpildes rezultāts:
true