2014-06-11 41 views
1

我想做一个函数,必须在2个数字之间生成一个随机数,你可以将它保存在一个变量中。我使用此代码:Javascript函数的功能

function rand(ran1, ran2, randVar) { 
    var randomNumb = Math.floor(Math.random()*(ran2 - ran1)) + ran1; 
    eval("var " +randVar+ " = "+randomNumb+";"); 
} 
rand(12, 49, rand1) 
alert("Your number is: "+rand1) 

我得到的错误是:Can't find variable: rand1

谁能帮助我?

+1

哪里是 “RAND 1” 声明? –

+1

它找不到'rand1',因为你从未做过'rand1' – Cereal

+0

你的变量是“ran1”而不是“rand1” –

回答

7

使用eval这完全没有必要。我建议这样的事情,而不是:

function rand(ran1, ran2) { 
    var randomNumb = Math.floor(Math.random()*(ran2 - ran1)) + ran1; 
    return randomNumb; 
} 

var rand1 = rand(12, 49); 
alert("Your number is: " + rand1); 

请注意,在调用该函数,唯一真正的区别是在你的地方标识,rand1

进一步阅读

+0

您甚至不需要先将随机数保存到变量中。你可以使用'返回Math.floor(...)' –

+1

@ColeJohnson正确,但我想强调我在这里改变了什么。 –