您好我现在有这个代码
var compare = function (choice1, choice2)
{
if (choice1 === choice2)
{
return "The result is a tie!";
}
};
if (choice1 === "Rock")
{
if (choice2 === "Scissors")
{
return "Rock wins!";
}
else (choice2 = "Paper")
{
return "Paper wins!";
}
}
但我一直收到Synatax错误,非法返回声明。
我不明白为什么我会收到这个错误,我做错了什么?我相信语法都是正确的。
顺便说一句,我使用的是在线编辑器,而不是实际的IDE。
答案 0 :(得分:2)
我想你想写下面的
var compare = function (choice1, choice2)
{
if (choice1 === choice2)
{
return "The result is a tie!";
}
if (choice1 === "Rock")
{
if (choice2 === "Scissors")
{
return "Rock wins!";
}
else if (choice2 === "Paper")
{
return "Paper wins!";
}
}
};
答案 1 :(得分:0)
return语句仅在函数内有效。
查看代码
var compare = function (choice1, choice2)
{
if (choice1 === choice2)
{
return "The result is a tie!";
}
};
这部分代码可以正常工作。但是在这个分号(;)
之后,代码的一个单独部分被启动,最终不是函数的一部分,因为你的函数以分号结束,这就是为什么代码的下半部分给出这个错误。
第二件事,你的其他陈述毫无意义。你的代码应该是这样的
var compare = function (choice1, choice2) {
if (choice1 === choice2) {
return "The result is a tie!";
}
if (choice1 === "Rock") {
if (choice2 === "Scissors") {
return "Rock wins!";
} else if (choice2 === "Paper") {
return "Paper wins!";
}
}
};
答案 2 :(得分:0)
另外,我犯了这个错误,在某处使用debugger;
或换行时,请不要在浏览器的控制台中返回。这会返回相同的语法错误,因为您的返回不包含在函数中。
在控制台中不要:
return choice1 === choice2
//错误
而是只做:
choice1 === choice2
// true或false