2017-02-19 47 views
-2

一個隨機數,當我嘗試循環的一些功能它卡住的RandomVariable的(), 如何在循環中的隨機數工作,而我需要刷新頁面每次如何循環在JavaScript

function randomvariable() { 
 
    randomvariable = Math.floor(Math.random() * 21); 
 
    document.getElementById("demo").innerHTML = randomvariable; 
 
} 
 

 

 

 
function launchfunctions() { 
 
    var count = 0; 
 
    while (count < 10) { 
 
    randomvariable(); 
 
    count++; 
 

 
    } 
 
} 
 
launchfunctions();
<div id="demo" ></div>

+0

很有可能它的示數爲'randomvariable'未聲明。 – Sid

+1

@Sid *被重新聲明 –

+1

@Sid聲明它的功能被覆蓋 – Rajesh

回答

4

你重新定義randomvariable,使用var或致電變量別的東西。

function randomvariable() { 
    var randomvariable = Math.floor(Math.random() * 21); 
    document.getElementById("demo").innerHTML = randomvariable; 
} 

function randomvariable() { 
    mynum = Math.floor(Math.random() * 21); 
    document.getElementById("demo").innerHTML = mynum; 
} 

雖然注意,定義變量時,你應該總是使用var關鍵字,已經在第二個例子省略說明如何調整隻是你的變量名可以解決這個問題。

注:

  • 聲明的變量,而不var將使其在非嚴格模式全局。這就是在函數內部使用var的原因。
  • 對一個函數和一個變量使用相同的變量名會使代碼混淆並降低可讀性。使用更好的命名約定。
+0

它開始工作正常,然後它使我對其他函數我自己學習JavaScript的問題,所以我有一點困難,當我有錯誤 – zexurity

+0

當我把它變成沒有全局的隨機工作正常,但它的下一個功能評分公式,我收到南警報,當我工作沒有變種它正常工作 – zexurity

0

您正在將randomvariable函數的屬性更改爲具有全局範圍的變量,因此,當流程進入隨機變量函數時,屬性會發生變化並報告錯誤消息。如果使用var,則變量在您所在的範圍內(例如函數中)聲明。

我修改了代碼來顯示隨機數。

function randomvariable() { 
 
    var randomvariable = Math.floor(Math.random() * 21); 
 
    document.getElementById("demo").innerHTML += randomvariable + "-"; 
 
} 
 

 
function launchfunctions() { 
 
    var count = 0; 
 
    while (count < 10) { 
 
    randomvariable(); 
 
    count++; 
 
    } 
 
}
<html> 
 

 
<body onload="launchfunctions()"> 
 
    <div id="demo"></div> 
 
</body> 
 

 
</html>