number.isfinite()严格判断值是否为有限数字,不进行类型转换,仅对number类型且非infinity、-infinity、nan的值返回true。

Number.isFinite() 专门用来判断一个值是否为“有限的数值”,它不会进行类型转换,只对真正的数字类型且为有限值(既不是 Infinity、-Infinity,也不是 NaN)返回 true。
只认 Number 类型,其他一律 false
和全局 isFinite() 不同,Number.isFinite() 不会尝试把字符串、布尔值等转成数字再判断。比如:
-
Number.isFinite(123)→true -
Number.isFinite("123")→false(字符串,不是 number) -
Number.isFinite(true)→false(布尔值) -
Number.isFinite(null)→false -
Number.isFinite(undefined)→false
明确排除 Infinity 和 NaN
哪怕值是 number 类型,只要它是无穷大或非数字,就返回 false:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
Number.isFinite(0)→true -
Number.isFinite(-0)→true -
Number.isFinite(1.7976931348623157e+308)→true(最大安全值以内) -
Number.isFinite(Infinity)→false -
Number.isFinite(-Infinity)→false -
Number.isFinite(NaN)→false
适合用在数值校验的关键场景
当你已经确定某个变量应该是数字(比如来自 API 的字段、用户输入经 Number() 转换后),想确认它是否真的可参与计算时,Number.isFinite() 是最稳妥的选择:
- 校验
parseInt()或parseFloat()的结果是否有效(避免NaN) - 检查数学运算结果是否溢出(如
1 / 0得到Infinity) - 配合
Number.isNaN()做完整数值有效性判断(!Number.isNaN(x) && Number.isFinite(x)可确认 x 是合法数字)
注意和 isFinite() 的关键区别
全局 isFinite("123") 会先调用 Number("123") 转成 123 再判断,所以返回 true;而 Number.isFinite("123") 直接看类型,不转换,返回 false。这种“严格模式”正是它的设计目的——避免隐式转换带来的误判。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










