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:
function 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
isFinite(qiymat);
Misol
Hozir isFinite true chiqaradi,
chunki parametr son:
let num = 3;
console.log(isFinite(num));
Kodni bajarish natijasi:
true
Misol
Hozir isFinite false chiqaradi,
chunki parametr son emas:
let num = 'abcde';
console.log(isFinite(num));
Kodni bajarish natijasi:
false
Misol
Hozir isFinite false chiqaradi,
chunki parametr cheksizlik:
let num = Infinity;
console.log(isFinite(num));
Kodni bajarish natijasi:
false
Misol
Hozir isFinite false chiqaradi,
chunki 1/0 - aslida Infinity
(cheksizlik):
let num = 1 / 0;
console.log(isFinite(num));
Kodni bajarish natijasi:
false
Misol
Hozir isFinite true chiqaradi,
chunki bo'sh satr, son bo'lmasa ham,
- bu istisno:
let num = '';
console.log(isFinite(num));
Kodni bajarish natijasi:
true