以下是一些有效的方法:
1. **使用 `Number.isInteger()` 方法:**
ECMAScript 6 引入了`Number.isInteger()`这个全局函数,它能够直接且明确地检查给定值是否为整数。
javascript
function isInt(value) {
return Number.isInteger(value);
}
console.log(isInt(42)); // true
console.log(isInt('42')); // false (虽然可以转换为数字但本身不是)
2. **配合 parseInt() 和 parseFloat():**
我们可以利用这两个内置函数的行为特点进行判断。如果对某个字符串或数值执行parseInt/parseFloat后结果与原值相等(同时不为NaN),则可认为它是整数。
javascript
function isInt(value) {
const num = parseFloat(value);
if (!isNaN(num)) {
return num === parseInt(num, 10);
}
return false;
}
console.log(isInt("42")); // true
console.log(isInt(3.9.toFixed(0))); //false 虽然转化为'3',但实际上是一个float型
3. 使用正则表达式匹配:
对于纯字符串形式表示的数字,可通过验证字符全部是数字并且末尾并无小数点来进行间接确认。
javascript
function isInt(strValue) {
return /^-?[0-9]+$/.test(strValue);
}
console.log(isInt('-42')); //true
console.log(isInt('42.5')); //false
注意这种方法只适用于处理以字符串形态出现、未经过任何转化操作的数据源。
总结起来,在实际编程应用中,推荐优先采用第一种方案——ECMAScript 6 提供的标准API `Number.isInteger()` 进行判断,既简洁又高效;而对于特定场景下需要处理特殊格式输入的情况,则可以选择其他两种方式进行辅助校验。