2015-01-21 157 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"