isFinite funksiyası

isFinite funksiyası parametrin sonlu ədəd olub-olmadığını (yəni sətir, massiv və s. olmamasını və ya müsbət/mənfi sonsuzluq olmamasını) yoxlamaq üçün istifadə olunur.

Bu funksiya necə işləyir: əgər ədəd müsbət və ya mənfi sonsuzluqdursa (yəni Infinity) ya da ədəd deyilsə (yəni NaN), false qaytarır, digər bütün hallarda isə true qaytarır. Yəni sətirlər, massivlər və s. NaN-ə çevriləcək və müvafiq olaraq false qaytaracaq.

Lakin istisnalar var: boş sətir '' true qaytarır, boşluqlardan ibarət sətir ' ' da true qaytarır, null true qaytarır, true və false qiymətləri üçün də true qaytarılır.

Bu ona görə baş verir ki, bu qiymətlər NaN-ə deyil, ədədlərə çevrilir. Əgər sizə həqiqətən dəqiq ədəd yoxlaması lazımdırsa, boşluqlardan ibarət sətiri, məntiqi və xüsusi qiymətləri ədəd saymayan - aşağıdakı isNumeric funksiyasından istifadə edin:

javascriptfunction isNumeric(num) {
  return !isNaN(parseFloat(num)) && isFinite(num);
};

Gəlin onun necə işlədiyini anlayaq. isFinite funksiyası parametri ədədə çevirir və əgər o Infinity, -Infinity və ya NaN deyilsə, true qaytarır. Beləliklə, sağ tərəf aşkar ədəd olmayanları ələyəcək, amma true, false, null, boş sətir '' və boşluqlardan ibarət sətir kimi qiymətləri buraxacaq, çünki onlar düzgün şəkildə ədədlərə çevrilir.

Bu qiymətləri ələmək üçün parseFloat funksiyasına ehtiyac var, hansı ki, true, false, null, '', ' ' üçün NaN qaytarır. parseFloat funksiyası belə işləyir: o, parametri sətirə çevirir, yəni true, false, null 'true', 'false', 'null' olur, sonra isə ondan ədədi oxuyur, bu zaman boş sətir və boşluqlardan ibarət sətir NaN verir. Sonra parseFloat-ın nəticəsi !isNaN ilə emal olunur, NaN əvəzinə true və ya false almaq üçün. Nəticədə, ədəd-sətirlər və adi ədədlər istisna olmaqla, hər şey ələnir.

Sintaksis

javascriptisFinite(qiymet);

Nümunə

İndi isFinite true göstərəcək, çünki parametr ədəddir:

javascriptlet num = 3;
console.log(isFinite(num));

Kodun icrasının nəticəsi:

javascripttrue

Nümunə

İndi isFinite false göstərəcək, çünki parametr ədəd deyil:

javascriptlet num = 'abcde';
console.log(isFinite(num));

Kodun icrasının nəticəsi:

javascriptfalse

Nümunə

İndi isFinite false göstərəcək, çünki parametr sonsuzluqdur:

javascriptlet num = Infinity;
console.log(isFinite(num));

Kodun icrasının nəticəsi:

javascriptfalse

Nümunə

İndi isFinite false göstərəcək, çünki 1/0 - əslində Infinity-dir (sonsuzluq):

javascriptlet num = 1 / 0;
console.log(isFinite(num));

Kodun icrasının nəticəsi:

javascriptfalse

Nümunə

İndi isFinite true göstərəcək, çünki ədəd olmayan boş sətir - istisnadır:

javascriptlet num = '';
console.log(isFinite(num));

Kodun icrasının nəticəsi:

javascripttrue

Həmçinin bax

  • isNaN funksiyası,
    hansı ki NaN üçün yoxlama edir
  • typeof operatoru,
    hansı ki məlumat növünü müəyyən edir