2014-06-11 17 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正確,但我想強調我在這裏改變了什麼。 –