我想要一个简洁的表达式来告诉我给定的值是整数还是浮点数。当提供输入值NaN
或Infinity
时,我希望输出值为false,因此仅排除检查typeof(val) == 'number'
是否
所需的输入/输出:
1
=> true
-42
=> true
3.14
=> true
NaN
=> false
Infinity
=> false
null
=> false
undefined
=> false
isFinite()
几乎是完美的,但有一个问题:isFinite(null)
返回true,当我真的希望它返回false时。
如果不经常检查if ((val != nul) && isFinite(val))
,还有其他更简洁的技术吗?
答案 0 :(得分:5)
// As suggested in the comments, a function:
var isNumber = function (val) {return !isNaN(parseInt(val))};
console.log(isNumber(1)) // true
console.log(isNumber(-42)) // true
console.log(isNumber(3.14)) // true
console.log(isNumber(NaN)) // false
console.log(isNumber(Infinity)) // false
console.log(isNumber(null)) // false
console.log(isNumber(undefined)) // false