我开始在学校学习JavaScript,其中一项任务要求我检查用户的输入是否为整数。
此代码对我不适用于CHROME 。
var person = prompt("Please enter your name", "Enter Name");
alert("Hello " + person);
var age = prompt("Please enter your age", "Enter age");
if (age == parseInt(age, 10))
alert("data is integer")
else
alert("data is not an integer")
无论我在提示框中输入字符串还是整数,它始终显示“数据不是整数”消息。
答案 0 :(得分:2)
提示总是返回字符串,但由于JS是松散类型的语言,因此这些字符串将在需要时自动进入Numbers(整数在JS中称为Numbers),这就是为什么你的示例正常工作。 / p>
为了更好地检查,您可以使用!isNaN
。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN
alert(!isNaN('10'));
alert(!isNaN('abc'));
alert(!isNaN(10));

对于疯狂的挫折者来说,这是OP代码的优化版本:
var age = parseInt(prompt("Please enter your age", "Enter age"), 10);
alert(isNaN(age) ? 'Not a number' : age);

答案 1 :(得分:0)
你可以试试这个来检查它是否是一个整数:
function isInteger(x) {
return x % 1 === 0;
}
答案 2 :(得分:0)
提示符将始终返回一个字符串:
if(age === '' + parseInt(age))
alert("data is integer")
else
alert("data is not an integer")