我在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;
}
答案 0 :(得分:3)
您错过了上一个TRIM()
子句中的if
。 (虽然在这种情况下正如A.J.正确地指出的那样,不需要进一步的比较;如果你做到最后else if
,那么条件必须保持。)
此外,比较对需要用else
除以逗号分隔。
在此:
&&
括号表达式被视为简单的表达式语句。发生语法错误是因为它后面没有分号,因此悬空else (computerChoice => .66, computerChoice <= 1) {
对解析器没有意义。
答案 1 :(得分:3)
不要使用逗号这样单独的条件,请使用{
。另外,代替最后一个&&
,只需删除条件,因为它是不必要的( else if
不超过1 )。最后,除非在其他地方定义Math.random()
,rock
和paper
,否则您需要将它们设为字符串:
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;