title: isFinite()
slug: Web/JavaScript/Reference/Global_Objects/isFinite
page-type: javascript-function
browser-compat: javascript.builtins.isFinite
sidebar: jssidebar
The isFinite() function determines whether a value is finite, first converting the value to a number if necessary. A finite number is one that's not {{jsxref("NaN")}} or ±{{jsxref("Infinity")}}. Because coercion inside the isFinite() function can be surprising, you may prefer to use {{jsxref("Number.isFinite()")}}.
{{InteractiveExample("JavaScript Demo: isFinite()")}}
function div(x) {
if (isFinite(1000 / x)) {
return "Number is NOT Infinity.";
}
return "Number is Infinity!";
}
console.log(div(0));
// Expected output: "Number is Infinity!""
console.log(div(1));
// Expected output: "Number is NOT Infinity."
Syntax
isFinite(value)
Parameters
value- : The value to be tested.
Return value
false if the given value is {{jsxref("NaN")}}, {{jsxref("Infinity")}}, or -Infinity after being converted to a number; otherwise, true.
Description
isFinite() is a function property of the global object.
When the argument to the isFinite() function is not of type Number, the value is first coerced to a number, and the resulting value is then compared against NaN and ±Infinity. This is as confusing as the behavior of {{jsxref("isNaN")}} — for example, isFinite("1") is true.
{{jsxref("Number.isFinite()")}} is a more reliable way to test whether a value is a finite number value, because it returns false for any non-number input.
Examples
Using isFinite()
isFinite(Infinity); // false
isFinite(NaN); // false
isFinite(-Infinity); // false
isFinite(0); // true
isFinite(2e64); // true
isFinite(910); // true
// Would've been false with the more robust Number.isFinite():
isFinite(null); // true
isFinite("0"); // true
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}
See also
- {{jsxref("Number.isFinite()")}}
- {{jsxref("Number.NaN")}}
- {{jsxref("Number.POSITIVE_INFINITY")}}
- {{jsxref("Number.NEGATIVE_INFINITY")}}