- 任何整数都会被1整除,即余数是0。为了防止字符串的干扰,需增加数字的判断
function isInteger(obj) {
return typeof obj === 'number' && obj%1 === 0
}
- 使用Math.round、Math.ceil、Math.floor判断 整数取整后还是等于自己
function isInteger(obj) {
return Math.round(obj) === obj
}
function isInteger(obj) {
return Math.ceil(obj) === obj
}
function isInteger(obj) {
return Math.floor(obj) === obj
}
- ES6提供了Number.isInteger
Number.isInteger(3)
- 此外还有parseInt和为位运算符也可以进行整数判断, 但需要注意的是位运算符对于10位以上的数字与parseInt对20位以上的数字判断就无效了,所以请慎用。
function isInteger(obj) {
return (obj | 0) === obj
}
isInteger(3)
isInteger(3.3)
isInteger('')
isInteger('3')
isInteger(true)
isInteger([])
isInteger(100000000000)
function isInteger(obj) {
return parseInt(obj, 10) === obj
}
isInteger(3)
isInteger(3.3)
isInteger('')
isInteger('3')
isInteger(true)
isInteger([])
isInteger(1000000000000000000000)