EN
JavaScript - global isFinite() vs Number.isFinite()
8
points
In this short article, we would like to show comparision between global isFinite() vs Number.isFinite() methods in JavaScript.
Quick solution:
Global
isFinite()method first converts value to number, that causes returningtruefor:
null,- boolean values,
- empty strings
- number strings,
- etc.
Number.isFinite()method doesn't.
Simple summary:
| value | Global isFinite(value) | Number.isFinite(value) |
1000 | true | true |
3.14 | true | true |
NaN | false | false |
Infinity | false | false |
null | true | false |
undefined | false | false |
true | true | false |
false | true | false |
'' | true | false |
'1000' | true | false |
'3.14' | true | false |
Hint: check practical examples for more cases.
Practical examples
In this section you can find runnable examples that shows isFinite() methods results.
Global isFinite() method
// ONLINE-RUNNER:browser;
console.log(isFinite(1000)); // true
console.log(isFinite(3.14)); // true
console.log(isFinite(true)); // true
console.log(isFinite(false)); // true
console.log(isFinite(NaN)); // false
console.log(isFinite(Infinity)); // false
console.log(isFinite(null)); // true
console.log(isFinite(undefined)); // false
console.log(isFinite('1000')); // true
console.log(isFinite('3.14')); // true
// Crazy case:
console.log(isFinite([])); // true
console.log(isFinite([1000])); // true
console.log(isFinite(['ab'])); // false
Number.isFinite() method
// ONLINE-RUNNER:browser;
console.log(Number.isFinite(1000)); // true
console.log(Number.isFinite(3.14)); // true
console.log(Number.isFinite(true)); // false
console.log(Number.isFinite(false)); // false
console.log(Number.isFinite(NaN)); // false
console.log(Number.isFinite(Infinity)); // false
console.log(Number.isFinite(null)); // false
console.log(Number.isFinite(undefined)); // false
console.log(Number.isFinite('1000')); // false
console.log(Number.isFinite('3.14')); // false
// Crazy case:
console.log(Number.isFinite([])); // false
console.log(Number.isFinite([1000])); // false
console.log(Number.isFinite(['ab'])); // false