Number.isFinite()

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 2015 年 9 月以来,该特性已在各大浏览器中可用。

Number.isFinite() 静态方法用于判断传入的值是否是一个有限数字(finite number)——即,它检查一个给定的值是数字,并且这个数字既不是正无穷(positive Infinity)、负无穷(negative Infinity),也不是非数字(NaN)。

试一试

console.log(Number.isFinite(1 / 0));
// Expected output: false

console.log(Number.isFinite(10 / 5));
// Expected output: true

console.log(Number.isFinite(0 / 0));
// Expected output: false

语法

js
Number.isFinite(value)

参数

value

待测试有限性的值。

返回值

如果给定的值是有限数字,则返回布尔值 true。否则返回 false

示例

使用 isFinite()

js
Number.isFinite(Infinity); // false
Number.isFinite(NaN); // false
Number.isFinite(-Infinity); // false

Number.isFinite(0); // true
Number.isFinite(2e64); // true

Number.isFinite() 与全局 isFinite() 的区别

与全局的 isFinite() 函数相比,此方法不会先将参数转换为数字。这意味着只有类型为 number *并且* 是有限的值才会返回 true,而非数字类型的值始终返回 false

js
isFinite("0"); // true; coerced to number 0
Number.isFinite("0"); // false
isFinite(null); // true; coerced to number 0
Number.isFinite(null); // false

规范

规范
ECMAScript® 2026 语言规范
# sec-number.isfinite

浏览器兼容性

另见