Number.isInteger() 方法用于判断一个数值是否为整数。
语法
Number.isInteger(value)
参数
value: 需要检测的值。
返回值
如果 value 是整数,则返回 true;否则返回 false。
描述
Number.isInteger() 方法会检查提供的参数是否为整数。该方法对于确保数值是整数非常有用,特别是在需要处理精确度和类型检查的情况下。
示例
基本示例
console.log(Number.isInteger(25)); // true
console.log(Number.isInteger(25.5)); // false
console.log(Number.isInteger("25")); // false与其它数据类型的比较
console.log(Number.isInteger(true)); // false console.log(Number.isInteger(null)); // false console.log(Number.isInteger(undefined)); // false
使用 NaN 和 Infinity
console.log(Number.isInteger(NaN)); // false console.log(Number.isInteger(Infinity)); // false console.log(Number.isInteger(-Infinity)); // false
处理负数
console.log(Number.isInteger(-42)); // true console.log(Number.isInteger(-42.0)); // true console.log(Number.isInteger(-42.1)); // false
与其它函数的区别
Number.isInteger() 与 Math.floor() 的区别:
console.log(Math.floor(42.9) === 42); // true console.log(Number.isInteger(42.9)); // false
与 parseInt() 的区别
parseInt() 会将字符串转换成整数,但可能会丢失精度或返回不正确的结果:
console.log(parseInt("42.9")); // 42
console.log(Number.isInteger(42.9)); // false在实际应用中的使用
假设你需要从用户输入中获取一个整数值,并进行某些操作,可以使用 Number.isInteger() 来验证输入:
// www.javascriptcn.com code example
function processInput(input) {
const num = parseFloat(input);
if (Number.isInteger(num)) {
console.log(`Processing integer: ${num}`);
} else {
console.log("Invalid input, please enter an integer.");
}
}
processInput("42"); // Processing integer: 42
processInput("42.5"); // Invalid input, please enter an integer.
processInput("not a number"); // Invalid input, please enter an integer.注意事项
- 如果传入的参数不是数字,或者是一个浮点数,该方法将返回
false。 Number.isInteger()不会对非数字类型的值进行隐式转换,例如布尔值、字符串等。
兼容性
Number.isInteger() 方法是 ECMAScript 6 引入的功能,在现代浏览器和环境中得到广泛支持。但是,如果你的应用需要支持旧版浏览器(如 Internet Explorer),则可能需要使用 polyfill 或其他替代方案来实现相同的功能。