Функсияи 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 параметрро
ба адад табдил медиҳад ва true бармегардонад,
агар он Infinity,
-Infinity ё NaN набошад.
Ҳамин тавр, тарафи рост албатта
ғайриададҳоро ҷудо мекунад, аммо чунин қиматҳоро
чун 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