【发布时间】:2012-11-06 21:19:19
【问题描述】:
检查变量是否为整数的最佳方法是什么?
在 Python 中你可以这样做:
if type(x) == int
在 JS 中是否有同样优雅的等价物?
【问题讨论】:
标签: javascript
检查变量是否为整数的最佳方法是什么?
在 Python 中你可以这样做:
if type(x) == int
在 JS 中是否有同样优雅的等价物?
【问题讨论】:
标签: javascript
使用isNaN(不是数字——但要注意逻辑被否定)并与parseInt结合:
function is_int(x)
{
return (!isNaN(x) && parseInt(x) == x)
}
作为suggested here,以下也可以:
function isInt(n) {
return n % 1 === 0;
}
【讨论】:
【讨论】:
if (~~x == x)
'1' 放入该 jsFiddle,它会返回 true(在 Chrome 上)。我认为这是不正确的行为?
==,它只是强制转换为数字,如果您不想将字符串转换为数字,请使用===。
Javascript 提供 typeof
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/typeof
// Numbers
typeof 37 === 'number';
typeof 3.14 === 'number';
typeof Math.LN2 === 'number';
typeof Infinity === 'number';
typeof NaN === 'number'; // Despite being "Not-A-Number"
typeof Number(1) === 'number'; // but never use this form!
【讨论】:
整数的 parseFloat() 和 parseInt() 等效项的数值相同。因此你可以这样做:
function isInt(value){
return (parseFloat(value) == parseInt(value)) && !isNaN(value);
}
然后
if (isInt(x)) // do work
【讨论】:
? true : false; 并且会更短,并且应该仍然这样做。