isFinite функциясы
isFinite функциясы параметрдин чектүү сан (башкача айтканда сап, массив ж.б. эмес жана плюс же минус чексиздик эмес) экенин текшерүү үчүн колдонулат.
Бул функция кандайча иштейт: ал false кайтарат,
эгерде сан плюс же минус чексиздик болсо (башкача айтканда Infinity)
же сан эмес болсо (башкача айтканда NaN),
калган учурларда true кайтарат.
Башкача айтканда, саптар, массивтер ж.б. NaNга
айланып, тиешелүү түрдө false кайтарышат.
Бирок кечиримдер бар: бош сап
'' true кайтарат, боштуктар менен сап ' '
дагы true кайтарат, null
true кайтарат, true жана false маанилери
үчүн дагы true кайтарылат.
Бул мындай болот, анткени бул маанилер
NaNга эмес, сандарга айланат.
Эгерде сизге боштуктар сабын, логикалык жана атайын маанилерди
сан деп эсептебеген чыныгы так санды текшерүү керек болсо
- төмөнкү isNumeric функциясын колдонуңуз:
function isNumeric(num) {
return !isNaN(parseFloat(num)) && isFinite(num);
};
Келгиле, анын кандайча иштээрин карап чыгалы.
isFinite функциясы параметрди
санга айландырып, эгерде ал Infinity,
-Infinity же NaN эмес болсо true кайтарат.
Ошентип, оң жагы ачык-айкын сан эмес нерселерди
чыгарып таштайт, бирок true, false, null, бош сап '' жана
боштуктар менен сап сыяктуу маанилерди калтырат, анткени алар туура айланышат
сандарга.
Бул маанилерди чыгарып таштоо үчүн
parseFloat функциясы керек,
ал эми true, false, null, '', ' '
үчүн NaN кайтарат. parseFloat функциясы ушинтип иштейт: ал
параметрди сапка айландырат, демек true,
false, null 'true', 'false',
'null' болуп калышат, андан кийин андан санды окуйт,
бул учурда бош сап жана боштуктар менен сап
NaN берет. Андан кийин parseFloat натыйжасы
!isNaN жардамы менен иштетилет,
NaN ордуна true же false алуу үчүн.
Натыйжада сан-саптар менен кадимки сандардан башкасы
баары чыгарылып ташталат.
Синтаксис
isFinite(маани);
Мисал
Азыр isFinite true чыгарат,
анткени параметр сан болуп саналат:
let num = 3;
console.log(isFinite(num));
Кодду иштетүү натыйжасы:
true
Мисал
Азыр isFinite false чыгарат,
анткени параметр сан эмес:
let num = 'abcde';
console.log(isFinite(num));
Кодду иштетүү натыйжасы:
false
Мисал
Азыр isFinite false чыгарат,
анткени параметр чексиздик болуп саналат:
let num = Infinity;
console.log(isFinite(num));
Кодду иштетүү натыйжасы:
false
Мисал
Азыр isFinite false чыгарат,
анткени 1/0 - бул чындыгында Infinity
(чексиздик):
let num = 1 / 0;
console.log(isFinite(num));
Кодду иштетүү натыйжасы:
false
Мисал
Азыр isFinite true чыгарат,
анткени бош сап, сан болбогону менен,
- бул кечирим:
let num = '';
console.log(isFinite(num));
Кодду иштетүү натыйжасы:
true