2015-01-21 155 views
0

我是新來的,所以原諒我的問題,如果它有點平庸。 語法錯誤:: 我同時學習JavaScript收到此錯誤分析器錯誤解析器錯誤(Javascript初學者尋找解決方案)

這裏是我的代碼(我正在寫一個簡單的搖滾,剪子,布制):

var userChoice = prompt("Rock, Paper or Scissors?"); 
computerChoice = "null"; 

var randomnumber = Math.floor(Math.random()*1); 
if (randomnumber <= (1/3)){ 
     computerChoice = "Rock"; 
    } 
else if ((randomnumber > (1/3)) && (randomnumber <= (2/3))){ 
     computerChoice = "Paper"; 
    } 
else { 
    computerChoice = "Scissors"; 
}  
} 
console.log(computerChoice); 

我有什麼錯?

+0

'Math.floor(的Math.random()* 1)'將永遠** **是'0' – Pointy 2015-01-21 06:40:23

+0

謝謝,這是爲什麼?我認爲它會採用0到1之間的非整數值,並返回該範圍內的某些內容,而不僅僅是零。 – 2015-01-21 07:22:45

+0

0和1之間的數字乘以1始終是介於0和1之間的數字。當你將它傳遞給'Math.floor()'時,你總是會得到0.'Math.floor()'函數總是返回一個整數;它就像'Math.round()',但它總是舍入。 – Pointy 2015-01-21 15:05:02

回答

1

用括號給出函數名,然後總是使用if else的語法,它會自動創建括號對,在它裏面工作.....所以永遠不會出錯。

要發現這種類型的Firefox的錯誤使用Firebug的插件的..這告訴你確切的行不......(如果你叫別人單個的JS給它適當的代碼號線)

var userChoice = prompt("Rock, Paper or Scissors?"); 
computerChoice = "null"; 

var randomnumber = Math.floor(Math.random()*1); 
if (randomnumber <= (1/3)) 
{ 
     computerChoice = "Rock"; 
} 
else if ((randomnumber > (1/3)) && (randomnumber <= (2/3))) 
{ 
     computerChoice = "Paper"; 
} 
else { 
    computerChoice = "Scissors"; 
}  
//} this is wrong. 
console.log(computerChoice); 
0

你忘了申報computerChoice作爲變量:

var computerChoice = null; //watch out "var"