23 of 264 menu

Funkcija isFinite

Funkcija isFinite služi za proveru parametra da li je konačan broj (odnosno da nije string, niz i sl. i nije plus ili minus beskonačnost).

Kako ova funkcija radi: vraćaće false, ako je broj plus ili minus beskonačnost (odnosno Infinity) ili nije broj (odnosno NaN), u ostalim slučajevima vraća true. To jest, stringovi, nizovi i sl. biće konvertovani u NaN i samim tim vraćaće false.

Međutim, postoje izuzeci: prazan string '' vraća true, string sa razmacima '    ' takođe vraća true, null vraća true, za vrednosti true i false takođe se vraća true.

Ovo se dešava zato što se ove vrednosti konvertuju u brojeve, a ne u NaN. Ako vam je potrebna zaista precizna provera broja, koja ne smatra brojem string sa razmacima, logičke i specijalne vrednosti - koristite sledeću funkciju isNumeric:

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

Hajde da razumemo kako ona radi. Funkcija isFinite konvertuje parametar u broj i vraća true, ako to nije Infinity, -Infinity ili NaN. Stoga, desni deo će odbaciti očigledne nebrojeve, ali će ostaviti vrednosti poput true, false, null, prazan string '' i string sa razmacima, jer se ispravno konvertuju u brojeve.

Da bismo odbacili ove vrednosti, potrebna je funkcija parseFloat, koja za true, false, null, '', '   ' vraća NaN. Tako je funkcija parseFloat napravljena: ona konvertuje parametar u string, odnosno true, false, null postaju 'true', 'false', 'null', a zatim čita broj iz njega, pri čemu prazan string i string sa razmacima daju NaN. Zatim rezultat parseFloat se obrađuje pomoću !isNaN, da bismo dobili true ili false umesto NaN. Kao rezultat, sve je odbačeno, osim stringova-brojeva i običnih brojeva.

Sintaksa

isFinite(vrednost);

Primer

Sada će isFinite ispisati true, pošto parametar jeste broj:

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

Rezultat izvršavanja koda:

true

Primer

Sada će isFinite ispisati false, pošto parametar nije broj:

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

Rezultat izvršavanja koda:

false

Primer

Sada će isFinite ispisati false, pošto parametar jeste beskonačnost:

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

Rezultat izvršavanja koda:

false

Primer

Sada će isFinite ispisati false, pošto je 1/0 - to je u suštini Infinity (beskonačnost):

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

Rezultat izvršavanja koda:

false

Primer

Sada će isFinite ispisati true, pošto je prazan string, koji nije broj, - izuzetak:

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

Rezultat izvršavanja koda:

true

Pogledajte takođe

  • funkciju isNaN,
    koja vrši proveru na NaN
  • operator typeof,
    koji određuje tip podataka
Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij