在Javascript中检查变量是否为整数

在Javascript中检查变量是否为整数,javascript,parseint,Javascript,Parseint,我在学校开始学习JavaScript,其中一项作业要求我检查用户的输入是否为整数 这段代码在CHROME上不适用 var person=prompt(“请输入您的姓名”、“输入姓名”); 警惕(“你好”+人); var age=提示(“请输入您的年龄”,“输入年龄”); if(年龄==parseInt(年龄,10)) 警报(“数据为整数”) 其他的 警报(“数据不是整数”)您可以尝试使用此警报检查其是否为整数: function isInteger(x) { return x

我在学校开始学习JavaScript,其中一项作业要求我检查用户的输入是否为整数

这段代码在CHROME上不适用

var person=prompt(“请输入您的姓名”、“输入姓名”);
警惕(“你好”+人);
var age=提示(“请输入您的年龄”,“输入年龄”);
if(年龄==parseInt(年龄,10))
警报(“数据为整数”)
其他的

警报(“数据不是整数”)
您可以尝试使用此警报检查其是否为整数:

function isInteger(x) {
        return x % 1 === 0;
    }

prompt将始终返回字符串,因此在您的情况下:

var integerAge = parseInt(age);

if(!isNaN(integerAge) && age === '' + integerAge)
    alert("data is integer")
else
    alert("data is not an integer")

在年龄的情况下,您可能还会在下一个验证步骤中检查它是否是一个正整数,其中一些
integerAge>=0
或自定义最小值和最大值。

提示始终返回字符串,但由于JS是松散类型的语言,这些字符串将在需要时自动转换为数字(整数在JS中称为数字),这就是为什么您的示例运行良好的原因

为了更好地检查,您可以使用
!伊斯南

警报(!isNaN('10');
警报(!isNaN('abc'));


警报(!isNaN(10))无论发生什么情况,它都显示数据不是整数。即使我输入了一个整数。@user3072143检查代码段:)您提供的代码工作正常(单击“运行代码段”按钮)。问题出在其他地方。对我来说也很好,做了个小动作:这是ben以前回答过的(使用===):==没有检查变量的类型,它应该具有我知道的相同行为,所以我使用===检查类型。你能解释一下原始代码为什么不工作吗?@user3072143
“15”==15
“15”==“”+15
结果值相同,怎么能解决你的问题?@KyleK当你进入你的年龄时,你之前给了0分?如果一个数字以0开头,javascript将这个值作为八进制值。你能解释一下为什么原始代码不起作用吗?一些白痴更喜欢投反对票,而不是写他认为好的答案。。。悲伤的时刻。代码问题真的很有效,给其他最好的解决方案,然后悲伤,只是降低我的积极性甚至贡献。作为一个新的开发人员,我不知道编程的一切。当我有一个工作的选择,我给它。让你投上一票只是为了同情@Shomz,而不是为了工作答案:)@KornelitoBenito是的,有时候这也会让我失望,我在这里不是新来的。振作起来,这不会经常发生——通常是一个贴得不好/不清楚的问题+一个疯子在你发布答案的那一刻读到的问题。:)isNaN将不检查整数,但检查数字(浮点和整数):因此发出警报(!isNaN(10.6));对于一个时代来说是不正确的。@KyleK我们显然是在谈论字符串与int。。。但是谢谢你的否决票。变量的名称是
age
。问题是检查是否为整数。抱歉,isNaN不合适。@KyleK你永远不会从JS提示符中得到整数。我们从来没有谈论过你的答案,但抨击过我的。。。我总是能说出一些同样愚蠢的事情,比如负数不适合称为年龄的变量,但你的答案不能处理它们。。。但这是毫无疑问的范围。