Funksioni isFinite
Funksioni isFinite përdoret për të kontrolluar nëse parametri
është një numër i fundëm (pra
jo string, array etj. dhe jo plus
ose minus pafundësi).
Si funksionon ky funksion: ai do të kthejë false,
nëse numri është plus ose minus pafundësi
(pra Infinity)
ose jo numër (pra NaN),
në raste të tjera do të kthejë true.
Pra stringjet, arrayet etj. do të shndërrohen
në NaN dhe në përputhje me rrethanat do të kthejnë false.
Megjithatë ka përjashtime: një string bosh
'' kthen true, një string me hapësira ' '
gjithashtu kthen true, null
kthen true, për vlerat true dhe false
gjithashtu kthehet true.
Kjo ndodh sepse këto vlera
shndërrohen në numra, jo në NaN.
Nëse keni nevojë për një kontroll vërtet të saktë
të numrit, e cila nuk e konsideron si numër një string
me hapësira, vlera boolean dhe vlera speciale
- përdorni funksionin e mëposhtëm isNumeric:
function isNumeric(num) {
return !isNaN(parseFloat(num)) && isFinite(num);
};
Le të kuptojmë se si funksionon ai.
Funksioni isFinite e shndërron parametrin
në numër dhe kthen true, nëse ky nuk është Infinity,
-Infinity ose NaN.
Kështu, pjesa e djathtë do të filtrojë qartë
jo-numrat, por do të lërë vlera të tilla
si true, false, null, stringun bosh '' dhe
stringun me hapësira, sepse ato shndërrohen në mënyrë korrekte
në numra.
Për të filtruar këto vlera, nevojitet funksioni
parseFloat,
i cili për true, false, null, '', ' '
do të kthejë NaN. Kështu funksionon parseFloat: ai
e shndërron parametrin në string, pra true,
false, null bëhen 'true', 'false',
'null', dhe pastaj lexon prej saj një numër,
ku një string bosh dhe një string me hapësira
japin NaN. Pastaj rezultati parseFloat përpunohet
duke përdorur !isNaN,
për të marrë true ose false në vend të NaN.
Si rezultat, filtrohet gjithçka, përveç stringjeve-numra
dhe numrave të zakonshëm.
Sintaksa
isFinite(vlera);
Shembull
Tani isFinite do të nxjerrë true,
pasi parametri është një numër:
let num = 3;
console.log(isFinite(num));
Rezultati i ekzekutimit të kodit:
true
Shembull
Tani isFinite do të nxjerrë false,
pasi parametri nuk është një numër:
let num = 'abcde';
console.log(isFinite(num));
Rezultati i ekzekutimit të kodit:
false
Shembull
Tani isFinite do të nxjerrë false,
pasi parametri është pafundësi:
let num = Infinity;
console.log(isFinite(num));
Rezultati i ekzekutimit të kodit:
false
Shembull
Tani isFinite do të nxjerrë false,
pasi 1/0 - kjo në thelb është Infinity
(pafundësi):
let num = 1 / 0;
console.log(isFinite(num));
Rezultati i ekzekutimit të kodit:
false
Shembull
Tani isFinite do të nxjerrë true,
pasi një string bosh, i cili nuk është numër,
- është një përjashtim:
let num = '';
console.log(isFinite(num));
Rezultati i ekzekutimit të kodit:
true