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 returningtrue
for:
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.
In this section you can find runnable examples that shows isFinite()
methods results.
xxxxxxxxxx
1
console.log(isFinite(1000)); // true
2
console.log(isFinite(3.14)); // true
3
4
console.log(isFinite(true)); // true
5
console.log(isFinite(false)); // true
6
7
console.log(isFinite(NaN)); // false
8
console.log(isFinite(Infinity)); // false
9
console.log(isFinite(null)); // true
10
console.log(isFinite(undefined)); // false
11
12
console.log(isFinite('1000')); // true
13
console.log(isFinite('3.14')); // true
14
15
16
// Crazy case:
17
18
console.log(isFinite([])); // true
19
console.log(isFinite([1000])); // true
20
console.log(isFinite(['ab'])); // false
xxxxxxxxxx
1
console.log(Number.isFinite(1000)); // true
2
console.log(Number.isFinite(3.14)); // true
3
4
console.log(Number.isFinite(true)); // false
5
console.log(Number.isFinite(false)); // false
6
7
console.log(Number.isFinite(NaN)); // false
8
console.log(Number.isFinite(Infinity)); // false
9
console.log(Number.isFinite(null)); // false
10
console.log(Number.isFinite(undefined)); // false
11
12
console.log(Number.isFinite('1000')); // false
13
console.log(Number.isFinite('3.14')); // false
14
15
16
// Crazy case:
17
18
console.log(Number.isFinite([])); // false
19
console.log(Number.isFinite([1000])); // false
20
console.log(Number.isFinite(['ab'])); // false