0
0
JavascriptHow-ToBeginner · 3 min read

How to Check if Number is Finite in JavaScript

In JavaScript, use the Number.isFinite() function to check if a value is a finite number. It returns true only for numbers that are not Infinity, -Infinity, or NaN. Avoid the global isFinite() function as it converts non-numbers to numbers before checking.
📐

Syntax

The syntax to check if a value is finite is:

  • Number.isFinite(value): Returns true if value is a number and finite.

This method does not convert the argument to a number, so only actual numbers are checked.

javascript
Number.isFinite(value)
💻

Example

This example shows how Number.isFinite() returns true for finite numbers and false for Infinity, -Infinity, NaN, and non-number types.

javascript
console.log(Number.isFinite(25));        // true
console.log(Number.isFinite(-3.14));     // true
console.log(Number.isFinite(Infinity));  // false
console.log(Number.isFinite(-Infinity)); // false
console.log(Number.isFinite(NaN));       // false
console.log(Number.isFinite('25'));      // false
console.log(Number.isFinite(null));      // false
Output
true true false false false false false
⚠️

Common Pitfalls

A common mistake is using the global isFinite() function, which converts the argument to a number before checking. This can lead to unexpected true results for strings or other types.

For example, isFinite('25') returns true because the string is converted to the number 25.

Use Number.isFinite() to avoid this issue, as it does not perform type conversion.

javascript
// Wrong: global isFinite converts string to number
console.log(isFinite('25')); // true (may be unexpected)

// Right: Number.isFinite checks type strictly
console.log(Number.isFinite('25')); // false
Output
true false
📊

Quick Reference

FunctionDescriptionExampleReturns
Number.isFinite(value)Checks if value is a finite number without type conversionNumber.isFinite(10)true
isFinite(value)Global function that converts value to number before checkingisFinite('10')true
Number.isFinite('10')Does not convert string, returns falseNumber.isFinite('10')false

Key Takeaways

Use Number.isFinite() to check if a value is a finite number without type conversion.
Avoid the global isFinite() function because it converts non-numbers to numbers before checking.
Number.isFinite() returns false for Infinity, -Infinity, NaN, and non-number types.
Always test your inputs to ensure they are numbers before checking finiteness.