23 of 264 menu

Funkcja isFinite

Funkcja isFinite służy do sprawdzania parametru pod kątem tego, czy jest skończoną liczbą (tzn. nie ciągiem znaków, tablicą itp. oraz nie plus lub minus nieskończonością).

Jak działa ta funkcja: zwróci false, jeśli liczba jest plus lub minus nieskończonością (czyli Infinity) lub nie jest liczbą (czyli NaN), w pozostałych przypadkach zwróci true. To znaczy, że ciągi znaków, tablice itp. zostaną przekształcone w NaN i odpowiednio zwrócą false.

Istnieją jednak wyjątki: pusty ciąg znaków '' zwraca true, ciąg znaków ze spacjami '    ' również zwraca true, null zwraca true, dla wartości true i false również zwracane jest true.

Dzieje się tak, ponieważ te wartości są konwertowane na liczby, a nie na NaN. Jeśli potrzebujesz naprawdę dokładnego sprawdzenia czy coś jest liczbą, które nie uznaje za liczbę ciągu ze spacjami, wartości logicznych i specjalnych - użyj następującej funkcji isNumeric:

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

Przyjrzyjmy się, jak ona działa. Funkcja isFinite konwertuje parametr na liczbę i zwraca true, jeśli to nie Infinity, -Infinity lub NaN. Zatem prawa część odsianiie zdecydowanie nie-liczby, ale pozostawi takie wartości jak true, false, null, pusty ciąg '' i ciąg ze spacjami, ponieważ są one poprawnie konwertowane na liczby.

Aby odsiać te wartości, potrzebna jest funkcja parseFloat, która dla true, false, null, '', '   ' zwróci NaN. Tak działa funkcja parseFloat: konwertuje parametr na ciąg znaków, czyli true, false, null stają się 'true', 'false', 'null', a następnie odczytuje z niego liczbę, przy czym pusty ciąg i ciąg ze spacjami dają NaN. Następnie wynik parseFloat jest przetwarzany przy pomocy !isNaN, aby otrzymać true lub false zamiast NaN. W rezultacie odsiewane jest wszystko oprócz ciągów-liczb i zwykłych liczb.

Składnia

isFinite(wartość);

Przykład

Teraz isFinite wypisze true, ponieważ parametr jest liczbą:

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

Wynik wykonania kodu:

true

Przykład

Teraz isFinite wypisze false, ponieważ parametr nie jest liczbą:

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

Wynik wykonania kodu:

false

Przykład

Teraz isFinite wypisze false, ponieważ parametr jest nieskończonością:

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

Wynik wykonania kodu:

false

Przykład

Teraz isFinite wypisze false, ponieważ 1/0 - to w zasadzie Infinity (nieskończoność):

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

Wynik wykonania kodu:

false

Przykład

Teraz isFinite wypisze true, ponieważ pusty ciąg znaków, niebędący liczbą, - to wyjątek:

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

Wynik wykonania kodu:

true

Zobacz też

  • funkcję isNaN,
    która sprawdza czy wartość to NaN
  • operator typeof,
    który określa typ danych
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć