23 of 264 menu

De functie isFinite

De functie isFinite dient om de parameter te controleren op of het een eindig getal is (dus niet een string, array, enz. en niet plus of min oneindigheid).

Hoe deze functie werkt: ze retourneert false, als het getal plus of min oneindigheid is (dat wil zeggen Infinity) of geen getal (dat wil zeggen NaN), in alle andere gevallen retourneert het true. Dat wil zeggen, strings, arrays, enz. worden omgezet in NaN en retourneren dienovereenkomstig false.

Er zijn echter uitzonderingen: een lege string '' retourneert true, een string met spaties '    ' retourneert ook true, null retourneert true, voor de waarden true en false wordt ook true geretourneerd.

Dit gebeurt omdat deze waarden worden omgezet in getallen, en niet in NaN. Als je een echt nauwkeurige controle nodig hebt op een getal, die een string van spaties, logische en speciale waarden niet als getal beschouwt - gebruik dan de volgende functie isNumeric:

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

Laten we eens kijken hoe het werkt. De functie isFinite converteert de parameter naar een getal en retourneert true, als het niet Infinity, -Infinity of NaN is. Zo zal het rechterdeel duidelijk geen-getallen uitsluiten, maar waarden zoals true, false, null, een lege string '' en een string met spaties laten staan, omdat ze correct worden omgezet in getallen.

Om deze waarden uit te sluiten, is de functie parseFloat nodig, die voor true, false, null, '', '   ' NaN retourneert. Zo werkt de functie parseFloat: ze converteert de parameter naar een string, d.w.z. true, false, null worden 'true', 'false', 'null', en leest er dan een getal uit, waarbij een lege string en een string met spaties NaN geven. Vervolgens wordt het resultaat van parseFloat verwerkt met !isNaN, om true of false te krijgen in plaats van NaN. Het resultaat is dat alles wordt uitgesloten, behalve string-getallen en gewone getallen.

Syntaxis

isFinite(waarde);

Voorbeeld

Nu zal isFinite true uitvoeren, omdat de parameter een getal is:

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

Resultaat van het uitvoeren van de code:

true

Voorbeeld

Nu zal isFinite false uitvoeren, omdat de parameter geen getal is:

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

Resultaat van het uitvoeren van de code:

false

Voorbeeld

Nu zal isFinite false uitvoeren, omdat de parameter oneindigheid is:

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

Resultaat van het uitvoeren van de code:

false

Voorbeeld

Nu zal isFinite false uitvoeren, omdat 1/0 in wezen Infinity is (oneindigheid):

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

Resultaat van het uitvoeren van de code:

false

Voorbeeld

Nu zal isFinite true uitvoeren, omdat een lege string, die geen getal is, een uitzondering is:

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

Resultaat van het uitvoeren van de code:

true

Zie ook

  • de functie isNaN,
    die controleert op NaN
  • de operator typeof,
    die het gegevenstype bepaalt
itdekauzlfr