Funkcija isFinite

Funkcija isFinite za preverjanje parametra, ali je končno število (torej ne niz, matrika itd. in ne plus ali minus neskončnost).

Kako deluje ta funkcija: vrnila bo false, če je število plus ali minus neskončnost (torej Infinity) ali ne število (torej NaN), v vseh drugih primerih bo vrnila true. To pomeni, da bodo nizi, matrike itd. pretvorjeni v NaN in bodo zato vrnili false.

Vendar obstajajo izjeme: prazen niz '' vrne true, niz s presledki ' ' prav tako vrne true, null vrne true, za vrednosti true in false se prav tako vrne true.

To se zgodi, ker se te vrednosti pretvorijo v števila in ne v NaN. Če potrebujete resnično natančno preverjanje števila, ki ne šteje za število niza s presledki, logične in posebne vrednosti - uporabite naslednjo funkcijo isNumeric:

javascriptfunction isNumeric(num) {
  return !isNaN(parseFloat(num)) && isFinite(num);
};

Poglejmo, kako deluje. Funkcija isFinite pretvori parameter v število in vrne true, če to ni Infinity, -Infinity ali NaN. Tako bo desni del odstranil očitno neštevila, vendar bo pustil takšne vrednosti kot true, false, null, prazen niz '' in niz s presledki, ker se pravilno pretvorijo v števila.

Za odstranjevanje teh vrednosti je potrebna funkcija parseFloat, ki bo za true, false, null, '', ' ' vrnila NaN. Tako deluje funkcija parseFloat: pretvori parameter v niz, tj. true, false, null postanejo 'true', 'false', 'null', nato pa iz nje prebere število, pri čemer prazen niz in niz s presledki dasta NaN. Nato se rezultat parseFloat obdela z !isNaN, da dobimo true ali false namesto NaN. Kot rezultat se odstrani vse, razen nizov-števil in običajnih števil.

Sintaksa

javascriptisFinite(vrednost);

Primer

Zdaj bo isFinite izpisal true, ker je parameter število:

javascriptlet num = 3;
console.log(isFinite(num));

Rezultat izvajanja kode:

javascripttrue

Primer

Zdaj bo isFinite izpisal false, ker parameter ni število:

javascriptlet num = 'abcde';
console.log(isFinite(num));

Rezultat izvajanja kode:

javascriptfalse

Primer

Zdaj bo isFinite izpisal false, ker je parameter neskončnost:

javascriptlet num = Infinity;
console.log(isFinite(num));

Rezultat izvajanja kode:

javascriptfalse

Primer

Zdaj bo isFinite izpisal false, ker je 1/0 v bistvu Infinity (neskončnost):

javascriptlet num = 1 / 0;
console.log(isFinite(num));

Rezultat izvajanja kode:

javascriptfalse

Primer

Zdaj bo isFinite izpisal true, ker je prazen niz, ki ni število, - izjema:

javascriptlet num = '';
console.log(isFinite(num));

Rezultat izvajanja kode:

javascripttrue

Glejte tudi

  • funkcijo isNaN,
    ki izvaja preverjanje na NaN
  • operator typeof,
    ki določa tip podatkov