语法错误,非法返回语句

时间:2013-12-18 08:03:41

标签: javascript

您好我现在有这个代码

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。

3 个答案:

答案 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