检查变量在JavaScript中是否仅为整数的最佳方法
可能重复:检查变量在JavaScript中是否仅为整数的最佳方法,javascript,Javascript,可能重复: 检查变量是否为整数的下注方法是什么 在Python中,您可以执行以下操作: if type(x) == int JS中是否有同样优雅的等价物?使用(不是数字,但要注意逻辑是否定的)并与parseInt结合使用: function is_int(x) { return (!isNaN(x) && parseInt(x) == x) } 同样,以下操作也可以: function isInt(n) { return n % 1 === 0; } 我还
检查变量是否为整数的下注方法是什么 在Python中,您可以执行以下操作:
if type(x) == int
JS中是否有同样优雅的等价物?使用(不是数字,但要注意逻辑是否定的)并与parseInt结合使用:
function is_int(x)
{
return (!isNaN(x) && parseInt(x) == x)
}
同样,以下操作也可以:
function isInt(n) {
return n % 1 === 0;
}
我还没有测试,但我建议:
if (Math.round(x) == x) {
// it's an integer
}
.Javascript提供了typeof
整数的parseFloat()和parseInt()等价项的数值将相同。因此,您可以这样做:
function isInt(value){
return (parseFloat(value) == parseInt(value)) && !isNaN(value);
}
然后
... 是的,但它从来不会产生“整数”…我认为“number”就足以满足我的实际需要。这很好地涵盖了这一点:稍微短一点,尽管不完全相同:
如果(~~x==x)
如果你将'1'
放入JSFIDLE,它将返回true(在Chrome上)。我会认为这是不正确的行为?@AlastairPitts:不,这只是因为==
而强制使用一个数字,如果你不想将字符串转换为数字,请使用==
。@elclanrs:哦,是的,我一直从JS中忘记了这一点:/你可以摆脱?真:假代码>和将更短,并且仍然应该这样做。哈哈,是的,我会修正的
function isInt(value){
return (parseFloat(value) == parseInt(value)) && !isNaN(value);
}
if (isInt(x)) // do work