我想要一个简洁的表达式来告诉我给定的值是整数还是 float 。当提供输入值 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))
,还有其他更简洁的技巧吗?
最佳答案
// 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
关于javascript - 在 JavaScript 中检查整数或 float 的最简洁方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26923627/