Funkcija isFinite

Funkcija isFinite naudojama parametrui patikrinti, ar jis yra baigtinis skaičius (t.y. ne eilutė, masivas ir pan., ir ne plius arba minus begalybė).

Kaip ši funkcija veikia: ji grąžins false, jei skaičius yra plius arba minus begalybė (t.y. Infinity) arba ne skaičius (t.y. NaN), kitais atvejais grąžins true. Tai yra, eilutės, masyvai ir pan. bus paversti NaN ir atitinkamai grąžins false.

Tačiau yra išimčių: tuščia eilutė '' grąžina true, eilutė su tarpais ' ' taip pat grąžina true, null grąžina true, reikšmėms true ir false taip pat grąžinama true.

Taip nutinka todėl, kad šios reikšmės konvertuojamos į skaičius, o ne į NaN. Jei jums reikia tikslaus skaičiaus patikrinimo, kuris nepripažįsta skaičiumi eilutę iš tarpų, loginės ir specialiąsias reikšmes - naudokite šią funkciją isNumeric:

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

Išsiaiškinkime, kaip ji veikia. Funkcija isFinite konvertuoja parametrą į skaičių ir grąžina true, jei tai ne Infinity, -Infinity ar NaN. Taigi, dešinioji dalis atmes akivaizdžius neskaičius, bet paliks tokias reikšmes kaip true, false, null, tuščią eilutę '' ir eilutę su tarpais, nes jos konvertuojamos į skaičius korektiškai.

Norint atsijoti šias reikšmes, reikia funkcijos parseFloat, kuri true, false, null, '', ' ' grąžins NaN. Taip veikia funkcija parseFloat: ji konvertuoja parametrą į eilutę, t.y. true, false, null tampa 'true', 'false', 'null', o tada nuskaito iš jos skaičių, o tuščia eilutė ir eilutė su tarpais duoda NaN. Tada parseFloat rezultatas apdorojamas naudojant !isNaN, kad gautumėte true arba false vietoj NaN. Rezultate atsijojama viskas, išskyrus skaičių eilutes ir paprastus skaičius.

Sintaksė

javascriptisFinite(reikšmė);

Pavyzdys

Dabar isFinite išves true, kadangi parametras yra skaičius:

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

Kodo vykdymo rezultatas:

javascripttrue

Pavyzdys

Dabar isFinite išves false, kadangi parametras nėra skaičius:

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

Kodo vykdymo rezultatas:

javascriptfalse

Pavyzdys

Dabar isFinite išves false, kadangi parametras yra begalybė:

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

Kodo vykdymo rezultatas:

javascriptfalse

Pavyzdys

Dabar isFinite išves false, kadangi 1/0 - tai iš esmės Infinity (begalybė):

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

Kodo vykdymo rezultatas:

javascriptfalse

Pavyzdys

Dabar isFinite išves true, kadangi tuščia eilutė, nors ir nėra skaičius, - yra išimtis:

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

Kodo vykdymo rezultatas:

javascripttrue

Taip pat žiūrėkite

  • funkciją isNaN,
    kuri atlieka patikrinimą ar reikšmė yra NaN
  • operatorių typeof,
    kuris nustato duomenų tipą