方式一、使用取余运算符判断
任何整数都会被1整除,即余数是0。利用这个规则来判断是否是整数。
function isInteger(obj) {
return obj%1 === 0
}
isInteger(3) // true
isInteger(3.3) // false
以上输出可以看出这个函数挺好用,但对于字符串和某些特殊值显得力不从心
isInteger('') // true
isInteger('3') // true
isInteger(true) // true
isInteger([]) // true
对于空字符串、字符串类型数字、布尔true、空数组都返回了true,真是难以接受。对这些类型的内部转换细节感兴趣的请参考:JavaScript中奇葩的假值
因此,需要先判断下对象是否是数字,比如加一个typeof
function isInteger(obj) {
return typeof obj === 'number' && obj%1 === 0
}
isInteger('') // false
isInteger('3') // false
isInteger(true) // false
isInteger([]) // false
本文摘自脚本之家