Функцыя isFinite

Функцыя isFinite для праверкі параметра на тое, што ён з'яўляецца канчатковым лікам (гэта ёсць не радком, масівам і г.д. і не плюс або мінус бясконцасцю).

Як працуе гэтая функцыя: яна верне false, калі лік з'яўляецца плюс або мінус бясконцасцю (гэта ёсць Infinity) або не лікам (гэта ёсць NaN), у астатніх выпадках верне true. Гэта значыць радкі, масівы і г.д. будуць пераўтвораны ў NaN і адпаведна вернуць false.

Аднак ёсць выключэнні: пусты радок '' вяртае true, радок з прабеламі ' ' таксама вяртае true, null вяртае true, для значэнняў true і false таксама вяртаецца true.

Гэта адбываецца таму, што гэтыя значэнні пераўтворацца ў лікі, а не ў NaN. Калі вам патрэбна сапраўды дакладная праверка на лік, якая не лічыць лікам радок з прабелаў, лагічныя і спецыяльныя значэнні - выкарыстоўвайце наступную функцыю isNumeric:

javascriptfunction 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. У выніку адсяваецца ўсё, акрамя радкоў-лікаў і звычайных лікаў.

Сінтаксіс

javascriptisFinite(значэнне);

Прыклад

Зараз isFinite выведе true, бо параметр з'яўляецца лікам:

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

Вынік выканання кода:

javascripttrue

Прыклад

Зараз isFinite выведе false, бо параметр не з'яўляецца лікам:

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

Вынік выканання кода:

javascriptfalse

Прыклад

Зараз isFinite выведе false, бо параметр з'яўляецца бясконцасцю:

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

Вынік выканання кода:

javascriptfalse

Прыклад

Зараз isFinite выведе false, бо 1/0 - гэта па сутнасці Infinity (бясконцасць):

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

Вынік выканання кода:

javascriptfalse

Прыклад

Зараз isFinite выведе true, бо пусты радок, які не з'яўляецца лікам, - гэта выключэнне:

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

Вынік выканання кода:

javascripttrue

Глядзіце таксама

  • функцыю isNaN,
    якая ажыццяўляе праверку на NaN
  • аператар typeof,
    які вызначае тып даных