检查变量在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