javascript - 在 JavaScript 中检查整数或 float 的最简洁方法是什么?

标签 javascript types

我想要一个简洁的表达式来告诉我给定的值是整数还是 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/

相关文章:

Linux无线驱动编码(ath9k): which API to use for reconfiguring channel type (b/t HT20 & HT40) on the go?

generics - 使用泛型作为集合中函数​​的参数

haskell - 为什么有一个单独的类型模块?

javascript - 重新编码函数

javascript - 覆盖 redux-form-validators 中的默认消息

javascript - jQuery 或 Ajax 仪表

swift - 我可以直接从协议(protocol)扩展类型访问默认静态变量吗?

javascript - 如何删除没有id的元素

javascript - 无法在 $.post 回调中设置作用域变量

javascript - 尝试至少存在一个必需的可选参数,但它的存在排除了其他参数