23 of 264 menu

Функция 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, за да се получи true или false вместо NaN. В резултат се отхвърля всичко, освен низове-числа и обикновени числа.

Синтаксис

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

Вижте също

  • функцията isNaN,
    която извършва проверка за NaN
  • операторът typeof,
    който определя типа на данните
Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне