number.isinteger() 是 javascript 中唯一标准、安全、语义明确的整数判断方法,严格返回布尔值,不进行类型转换,需配合 number() 和 isfinite() 处理字符串输入,并注意 -0/+0 均视为整数。

Number.isInteger() 是 JavaScript 中专门用来判断一个值是否为“整数”的方法,它只返回 true 或 false,且对非数值类型、浮点数、NaN、Infinity 等都会严格返回 false。
只认真正的整数,不作类型转换
它不会像 parseInt() 或 Math.floor() 那样尝试“凑整”或隐式转类型。传入字符串 "10"、布尔值 true、null 或对象,一律返回 false:
-
Number.isInteger(5)→true -
Number.isInteger(5.0)→true(5.0 在 JS 中就是整数) -
Number.isInteger(5.1)→false -
Number.isInteger("5")→false(字符串不是数字类型) -
Number.isInteger(NaN)→false -
Number.isInteger(Infinity)→false
和 isFinite()、Number() 配合更稳妥
单独用 Number.isInteger() 无法处理字符串输入。如果想校验用户输入的“可能为整数的字符串”,需先转成数字再判断:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 先用
Number(str)转换,再用Number.isInteger() - 建议加一层
isFinite()排除Infinity和-Infinity - 例如:
const n = Number("123"); Number.isInteger(n) && isFinite(n)
注意 -0 和 +0 的特殊性
JS 中 -0 和 +0 都是合法数值,且 Number.isInteger(-0) 返回 true。这符合数学定义(-0 是整数),但若业务逻辑需区分正负零,应额外用 Object.is(value, -0) 判断。
别和 Math.round()、~~ 混用
有些写法如 Math.round(x) === x 或 ~~x === x 看似能判整数,但有风险:
-
Math.round(1.9999999999999999)会变成2,导致误判 -
~~对大数(如2**32)会溢出,结果不可靠 -
Number.isInteger()是唯一标准、安全、语义明确的方式
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










