Kazi isFinite
Kazi isFinite inatumika kukagua parameta
kuona ikiwa ni nambari ya mwisho (yaani
sio mfuatano, safu, n.k. wala sio ukomo
wa pamoja au hasi).
Kazi hii inavyofanya kazi: itarudisha false,
ikiwa nambari ni ukomo wa pamoja au hasi
(yaani Infinity)
au sio nambari (yaani NaN),
katika hali zingine zote itarudisha true.
Yaani mifuatano, safu, n.k. itabadilishwa
kuwa NaN na kwa hivyo itarudisha false.
Hata hivyo, kuna vizuizi: mfuatano tupu
'' hurudisha true, mfuatano wenye nafasi ' '
pia hurudisha true, null
hurudisha true, kwa maadili true na false
pia hurudishiwa true.
Hii hutokea kwa sababu maadili haya
hubadilishwa kuwa nambari, na sio NaN.
Iwapo unahitaji ukaguzi wa kweli wa nambari,
ambao hauzingatii mfuatano wa nafasi kuwa nambari,
maadili ya kimantiki na maadili maalum
- tumia kazi ifuatayo isNumeric:
function isNumeric(num) {
return !isNaN(parseFloat(num)) && isFinite(num);
};
Hebu tuelewe jinsi inavyofanya kazi.
Kazi isFinite inabadilisha parameta
kuwa nambari na kurudisha true, ikiwa hii sio Infinity,
-Infinity au NaN.
Kwa hivyo, sehemu ya kulia itatenga kwa hakika
yasiyo nambari, lakini itaacha maadili kama
true, false, null, mfuatano tupu '' na
mfuatano wenye nafasi, kwa sababu hubadilika vyema
kuwa nambari.
Ili kutenga maadili haya, inahitajika kazi
parseFloat,
ambayo kwa true, false, null, '', ' '
itarudisha NaN. Hivi ndivyo kazi parseFloat inavyofanya kazi: hii
inabadilisha parameta kuwa mfuatano, yaani true,
false, null hubadilika kuwa 'true', 'false',
'null', na kisha husoma nambari kutoka humo,
wakati huo huo mfuatano tupu na mfuatano wenye nafasi
hutoa NaN. Kisha matokeo ya parseFloat hushughulikiwa
kwa kutumia !isNaN,
ili kupata true au false badala ya NaN.
Kwa matokeo, kila kitu kinatengwa, isipokuwa mifuatano-nambari
na nambari za kawaida.
Sintaksia
isFinite(thamani);
Mfano
Sasa isFinite itatoa true,
kwa sababu parameta ni nambari:
let num = 3;
console.log(isFinite(num));
Matokeo ya utekelezaji wa kodi:
true
Mfano
Sasa isFinite itatoa false,
kwa sababu parameta sio nambari:
let num = 'abcde';
console.log(isFinite(num));
Matokeo ya utekelezaji wa kodi:
false
Mfano
Sasa isFinite itatoa false,
kwa sababu parameta ni ukomo:
let num = Infinity;
console.log(isFinite(num));
Matokeo ya utekelezaji wa kodi:
false
Mfano
Sasa isFinite itatoa false,
kwa sababu 1/0 - kwa hakika ni Infinity
(ukomo):
let num = 1 / 0;
console.log(isFinite(num));
Matokeo ya utekelezaji wa kodi:
false
Mfano
Sasa isFinite itatoa true,
kwa sababu mfuatano tupu, ambao sio nambari,
- ni ubaguzi:
let num = '';
console.log(isFinite(num));
Matokeo ya utekelezaji wa kodi:
true