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): Returnstrueifvalueis 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
| Function | Description | Example | Returns |
|---|---|---|---|
| Number.isFinite(value) | Checks if value is a finite number without type conversion | Number.isFinite(10) | true |
| isFinite(value) | Global function that converts value to number before checking | isFinite('10') | true |
| Number.isFinite('10') | Does not convert string, returns false | Number.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.