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:
javascriptfunction 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
javascriptisFinite(vērtība);
Piemērs
Šoreiz isFinite izvadīs true,
jo parametrs ir skaitlis:
javascriptlet num = 3;
console.log(isFinite(num));
Koda izpildes rezultāts:
javascripttrue
Piemērs
Šoreiz isFinite izvadīs false,
jo parametrs nav skaitlis:
javascriptlet num = 'abcde';
console.log(isFinite(num));
Koda izpildes rezultāts:
javascriptfalse
Piemērs
Šoreiz isFinite izvadīs false,
jo parametrs ir bezgalība:
javascriptlet num = Infinity;
console.log(isFinite(num));
Koda izpildes rezultāts:
javascriptfalse
Piemērs
Šoreiz isFinite izvadīs false,
jo 1/0 - tas būtībā ir Infinity
(bezgalība):
javascriptlet num = 1 / 0;
console.log(isFinite(num));
Koda izpildes rezultāts:
javascriptfalse
Piemērs
Šoreiz isFinite izvadīs true,
jo tukša virkne, kas nav skaitlis,
- ir izņēmums:
javascriptlet num = '';
console.log(isFinite(num));
Koda izpildes rezultāts:
javascripttrue