检查变量是否是Javascript中的整数

时间:2015-01-28 13:52:41

标签: javascript parseint

我开始在学校学习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")

无论我在提示框中输入字符串还是整数,它始终显示“数据不是整数”消息。

3 个答案:

答案 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")