isFinite funksiyasi
isFinite funksiyasi parametrning
chekli son ekanligini tekshirish uchun ishlatiladi
(ya'ni satr, massiv va h.k. emas va ham
plus yoki minus cheksizlik emas).
Bu funksiya qanday ishlaydi: agar son
plus yoki minus cheksizlik bo'lsa
(ya'ni Infinity)
yoki son bo'lmasa (ya'ni NaN),
false qaytaradi,
qolgan hollarda true qaytaradi.
Ya'ni satrlar, massivlar va h.k.
NaN ga o'zgartiriladi va shuning uchun false qaytaradi.
Biroq istisnolar mavjud: bo'sh satr
'' true qaytaradi, bo'shliqlardan iborat satr ' '
ham true qaytaradi, null
true qaytaradi, true va false
qiymatlari uchun ham true qaytariladi.
Bu shunday sodir bo'ladi, chunki bu qiymatlar
NaN emas, balki sonlarga o'zgartiriladi.
Agar sizga bo'shliqlardan iborat satrni, mantiqiy
va maxsus qiymatlarni son hisoblamaydigan, aniq
son tekshiruvi kerak bo'lsa - quyidagi isNumeric
funksiyasidan foydalaning:
javascriptfunction isNumeric(num) {
return !isNaN(parseFloat(num)) && isFinite(num);
};
Keling, u qanday ishlashini tushunamiz.
isFinite funksiyasi parametrni
songa o'zgartiradi va agar u Infinity,
-Infinity yoki NaN bo'lmasa,
true qaytaradi.
Shunday qilib, o'ng qismi aniq
son bo'lmagan narsalarni chiqarib tashlaydi,
lekin true, false, null, bo'sh satr '' va
bo'shliqlardan iborat satr kabi qiymatlarni qoldiradi,
chunki ular to'g'ri sonlarga o'zgartiriladi.
Bu qiymatlarni chiqarib tashlash uchun
parseFloat
funksiyasi kerak, u true, false, null, '', ' '
uchun NaN qaytaradi. parseFloat funksiyasi shunday ishlaydi: u
parametrni satrga o'zgartiradi, ya'ni true,
false, null 'true', 'false',
'null' ga aylanadi, so'ngra undan sonni o'qiydi,
bunda bo'sh satr va bo'shliqlardan iborat satr
NaN beradi. Keyin parseFloat natijasi
!isNaN yordamida
NaN o'rniga true yoki false olish uchun
qayta ishlanadi.
Natijada son-satrlar va oddiy sonlardan boshqa
hamma narsa chiqarib tashlanadi.
Sintaksis
javascriptisFinite(qiymat);
Misol
Hozir isFinite true chiqaradi,
chunki parametr son:
javascriptlet num = 3;
console.log(isFinite(num));
Kodni bajarish natijasi:
javascripttrue
Misol
Hozir isFinite false chiqaradi,
chunki parametr son emas:
javascriptlet num = 'abcde';
console.log(isFinite(num));
Kodni bajarish natijasi:
javascriptfalse
Misol
Hozir isFinite false chiqaradi,
chunki parametr cheksizlik:
javascriptlet num = Infinity;
console.log(isFinite(num));
Kodni bajarish natijasi:
javascriptfalse
Misol
Hozir isFinite false chiqaradi,
chunki 1/0 - aslida Infinity
(cheksizlik):
javascriptlet num = 1 / 0;
console.log(isFinite(num));
Kodni bajarish natijasi:
javascriptfalse
Misol
Hozir isFinite true chiqaradi,
chunki bo'sh satr, son bo'lmasa ham,
- bu istisno:
javascriptlet num = '';
console.log(isFinite(num));
Kodni bajarish natijasi:
javascripttrue