Функција 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,
    који одређује тип података