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