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

Skatiet arī

  • funkciju isNaN,
    kas veic pārbaudi uz NaN
  • operators typeof,
    kas nosaka datu tipu