接受两个数字并在两个数字之间返回一个随机数的函数。 (JavaScript的)

时间:2015-07-15 02:26:56

标签: javascript

现在正在学习JavaScript几周,我正在尝试编写一个功能,提示用户输入2个数字并在它们之间生成一个随机数。我写了这段代码,

function randomInt(min,max) {

var min = prompt( "Enter a number." );
var max = prompt( "Enter another number." );
var randNum = Math.floor(Math.random() * (max - min + 1)) + min;

return randNum;

}
alert(randomInt());

它会提示我输入数字,但它会生成一个随机数,而不是我输入的数字之间的数字。就像我输入5和20并返回31或2但是在尝试时,

var min = 5;
var max = 20;

它有效,实际上给了我一个5到20之间的数字,不知道为什么。这似乎是一项简单的任务,但只是难倒。

1 个答案:

答案 0 :(得分:1)

prompt()函数返回字符串,而非数字。您可以使用一元+运算符强制将值解释为数字:

    var min = +prompt("Enter a number.");
    var max = +prompt( "Enter another number." );

如果没有这个,外部+运算符将优先执行字符串连接操作,因为右侧操作数(min)是一个字符串。也就是说,在这个表达式中:

    Math.floor(Math.random() * (max - min + 1)) + min

-中的max - min运算符会导致数字减法正确完成。但是,如果+是字符串,则将最小值添加回随机数的外部min将执行字符串连接,而不是数字添加。因此,您最终会得到一个介于0和隐含范围之间的随机整数,并连接到最小值(作为字符串)。