isFinite()
isFinite() 函数用于判断一个值是否为有限数,如果需要,它会首先将该值转换为数字。有限数是指不是 NaN 或 ±Infinity 的数。由于 isFinite() 函数内部的类型强制转换可能令人感到意外,因此您可能更倾向于使用 Number.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."
语法
js
isFinite(value)
参数
value-
要测试的值。
返回值
描述
isFinite() 是全局对象的一个函数属性。
当 isFinite() 函数的参数不是 Number 类型时,该值会首先被强制转换为数字,然后将结果值与 NaN 和 ±Infinity 进行比较。这与 isNaN 的行为一样令人困惑——例如,isFinite("1") 为 true。
Number.isFinite() 是一种更可靠的方式来测试一个值是否为有限数字值,因为它对任何非数字输入都返回 false。
示例
使用 isFinite()
js
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
规范
| 规范 |
|---|
| ECMAScript® 2026 语言规范 # sec-isfinite-number |
浏览器兼容性
加载中…