SyntaxError: Unexpected token { in rock paper scissors

SyntaxError: Unexpected token { in rock paper scissors

我遇到了错误 "SyntaxError: Unexpected token {",我不知道为什么,因为一切似乎都很正确!你能帮帮我吗?

var userChoice = prompt("Choose: rock, paper or scissors?");

var computerChoice = Math.random();

if(computerChoice >= 0 && computerChoice <= 0.33){
    computerChoice === "rock";
} 

else if (computerChoice >= 0.34 && computerChoice <= 0.66){
    computerChoice === "paper";
} 

else (computerChoice >= 0.67 && computerChoice <= 1){
    computerChoice === "scissors";
}

您的 else 块有一个条件。那没有意义。 else 块应该捕获所有其他情况,因此不需要条件。这就是为什么它需要左大括号。

消除条件或将其转换为 else if 块。

else {
    computerChoice === "scissors";
}

 else if (computerChoice >= 0.67 && computerChoice <= 1){
    computerChoice === "scissors";
}

此外,您应该使用 = 进行赋值。 ===comparison operator.

computerChoice = "scissors";

此外,computerChoice 首先分配一个数字,然后分配一个字符串。那是有风险的。 JavaScript 允许它,因为它是 dynamic language,但最好使用不同的变量以避免混淆。所以最后,我们有:

var userChoice = prompt("Choose: rock, paper or scissors?");
var computerChoice = "not selected";    
var rand = Math.random();

if(rand >= 0 && rand<= 0.33){
    computerChoice = "rock";
} 

else if (rand >= 0.34 && rand <= 0.66){
    computerChoice = "paper";
} 

else {
    computerChoice = "scissors";
}

是的,语法错误
else 运行 只要所有评估都是错误的。所以 else 不接受条件。
如果您希望程序评估更多条件,请使用 else if

if(computerChoice >= 0 && computerChoice <= 0.33){
    computerChoice === "rock";
} 

else if (computerChoice >= 0.34 && computerChoice <= 0.66){
    computerChoice === "paper";
} 

else (){
    computerChoice === "scissors";
}