在JavaScript中检查整数或浮点数最简洁的方法是什么?

时间:2014-11-14 05:39:52

标签: javascript types

我想要一个简洁的表达式来告诉我给定的值是整数还是浮点数。当提供输入值NaNInfinity时,我希望输出值为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)),还有其他更简洁的技术吗?

1 个答案:

答案 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