23 of 264 menu

Funktio isFinite

Funktio isFinite parametrin tarkistamiseen siihen, että se on äärellinen luku (eli ei merkkijono, taulukko jne. eikä plus- tai miinus äärettömyys).

Miten tämä funktio toimii: se palauttaa false, jos luku on plus- tai miinusäärettömyys (eli Infinity) tai ei ole luku (eli NaN), muissa tapauksissa se palauttaa true. Eli merkkijonot, taulukot jne. muunnetaan NaN:ksi ja palauttavat siten false.

On kuitenkin poikkeuksia: tyhjä merkkijono '' palauttaa true, välilyönneistä koostuva merkkijono '    ' myös palauttaa true, null palauttaa true, arvoille true ja false myös palautetaan true.

Tämä tapahtuu, koska nämä arvot muunnetaan luvuiksi, eivätkä NaN:iksi. Jos tarvitset todella tarkan tarkistuksen luvuksi, joka ei pidä lukuina välilyönneistä koostuvaa merkkijonoa, loogisia ja erikoisarvoja - käytä seuraavaa funktiota isNumeric:

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

Selvitetään, miten se toimii. Funktio isFinite muuntaa parametrin luvuksi ja palauttaa true, jos se ei ole Infinity, -Infinity tai NaN. Siten oikea puoli hylkää selvästi ei-lukuja, mutta jättää sellaiset arvot kuin true, false, null, tyhjä merkkijono '' ja välilyönneistä koostuva merkkijono, koska ne muunnetaan oikein luvuiksi.

Jotta nämä arvot voidaan hylätä, tarvitaan funktio parseFloat, joka true:lle, false:lle, null:lle, '':lle, '   ':lle palauttaa NaN. Näin funktio parseFloat on rakennettu: se muuntaa parametrin merkkijonoksi, eli true, false, null tulevat 'true', 'false', 'null':ksi, ja sitten lukee siitä luvun, jonka yhteydessä tyhjä merkkijono ja välilyönneistä koostuvat merkkijonot antavat NaN. Sitten parseFloat:n tulosta käsitellään !isNaN:lla saadakseen true tai false NaN:n sijaan. Lopputuloksessa kaikki hylätään paitsi numero-merkkijonot ja tavalliset luvut.

Syntaksi

isFinite(arvo);

Esimerkki

Nyt isFinite tulostaa true, koska parametri on luku:

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

Koodin suorituksen tulos:

true

Esimerkki

Nyt isFinite tulostaa false, koska parametri ei ole luku:

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

Koodin suorituksen tulos:

false

Esimerkki

Nyt isFinite tulostaa false, koska parametri on äärettömyys:

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

Koodin suorituksen tulos:

false

Esimerkki

Nyt isFinite tulostaa false, koska 1/0 on olennaisesti Infinity (äärettömyys):

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

Koodin suorituksen tulos:

false

Esimerkki

Nyt isFinite tulostaa true, koska tyhjä merkkijono, joka ei ole luku, - on poikkeus:

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

Koodin suorituksen tulos:

true

Katso myös

  • funktion isNaN,
    joka suorittaa tarkistuksen NaN:lle
  • operaattorin typeof,
    joka määrittää tietotyypin
Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää