function isInteger(obj) {
return obj%1 === 0}isInteger(4) // trueisInteger(4.8) // falseisInteger(‘‘) // true
isInteger(‘4‘) // trueisInteger(true) // trueisInteger([]) // truefunction isInteger(obj) {
return typeof obj === ‘number‘ && obj%1 === 0}原理:整数取整后还等于本身。利用这个特性来判断是否是整数,Math.floor示例,如下
function isInteger(obj) {
return Math.floor(obj) === obj}isInteger(4) // trueisInteger(4.8) // falseisInteger(‘‘) // falseisInteger(‘4‘) // falseisInteger(true) // falseisInteger([]) // falsefunction isInteger(obj) {
return parseInt(obj, 10) === obj}isInteger(4) // trueisInteger(4.8) // falseisInteger(‘‘) // falseisInteger(‘4‘) // falseisInteger(true) // falseisInteger([]) // falseisInteger(10000000000000000000000) // falsefunction isInteger(obj) {
return (obj | 0) === obj}isInteger(4) // trueisInteger(4.8) // falseisInteger(‘‘) // falseisInteger(‘4‘) // falseisInteger(true) // falseisInteger([]) // falseisInteger(Math.pow(2, 32)) // 32位以上的数字返回false了Number.isInteger(4) // true
Number.isInteger(4.8) // false
Number.isInteger(‘‘) // falseNumber.isInteger(‘4‘) // falseNumber.isInteger(true) // falseNumber.isInteger([]) // falseMath.floor(obj) === obj,ES6中推荐使用Number.isInteger方法。原文:https://www.cnblogs.com/zhoudawei/p/10633192.html