SyntaxError:意外的令牌{

时间:2016-06-29 16:44:55

标签: javascript

我在CodeCademy上做摇滚,纸张,剪刀JavaScript课程,

我被困在其中一个模块上,不断收到“SyntaxError:Unexpected token {”

真的很奇怪!除非我删除所有大括号({}),否则提示将不会运行....但我需要在if / else if / else语句中使用大括号。

如果我删除了第一个{,则会出现错误消息: “SyntaxError:意外的令牌}”。所以它只是注意到了下一个大括号。

这是我的代码:

var userChoice = prompt("Do you choose rock, paper or scissors?");

var computerChoice = Math.random();

//All curly brackets are below this point

if (computerChoice >0, computerChoice <= .33) {
    computerChoice = rock;
} else if (computerChoice > .33, computerChoice < .66) {
    computerChoice = paper;
} else (computerChoice => .66, computerChoice <= 1) {
    computerChoice = scissors;
}

4 个答案:

答案 0 :(得分:3)

您错过了上一个TRIM()子句中的if。 (虽然在这种情况下正如A.J.正确地指出的那样,不需要进一步的比较;如果你做到最后else if,那么条件必须保持。)

此外,比较对需要用else除以逗号分隔。

在此:

&&

括号表达式被视为简单的表达式语句。发生语法错误是因为它后面没有分号,因此悬空else (computerChoice => .66, computerChoice <= 1) { 对解析器没有意义。

答案 1 :(得分:3)

不要使用逗号这样单独的条件,请使用{。另外,代替最后一个&&,只需删除条件,因为它是不必要的( else if不超过1 )。最后,除非在其他地方定义Math.random()rockpaper,否则您需要将它们设为字符串:

scissors

答案 2 :(得分:2)

您不能使用,但使用条件运算符来组合条件。此外,您无法为else语句添加条件。使用以下内容:

var userChoice = prompt("Do you choose rock, paper or scissors?");

var computerChoice = Math.random();

//All curly brackets are below this point

if (computerChoice >0 && computerChoice <= .33) {
    computerChoice = rock;
} else if (computerChoice > .33 && computerChoice < .66) {
    computerChoice = paper;
} else {
    computerChoice = scissors;
}

答案 3 :(得分:1)

使用三元运算符来避免精神痛苦。

computerChoice = computerChoice < 1/3 ? rock : computerChoice < 2/3 ? paper : scissors;