Javascript返回非法声明

时间:2017-04-01 22:07:21

标签: javascript return

if(choice1 === choice2) {
return"The result is a tie!";

}

否则if(choice1 ===“rock”){

if (choice2 === "scissors") {
    return "rock wins";

}
else {
    return "paper wins";
}

}

请帮帮我

1 个答案:

答案 0 :(得分:1)

return 语句将控制权返回给调用上下文。在全局代码的情况下,没有返回的调用上下文,因此它们在那里是非法的。它们是 FunctionDeclaration 生产的一部分,因此您只能在函数内部使用它们。

要查看ECMA-262的相关部分,请从§14.1 Function Definitions开始,其中一个是FunctionDeclaration,其中包括FunctionBody,其中包括FunctionStatementList StatementListStatementListItem,其中包含Statement。现在(令人惊讶地)由零{或} ReturnStatement组成,described in §13.10 s,FunctionExpressionArrowFunction,{{3}}。{/ p} >

因此,return语句只能出现在函数体中,而函数体只能出现在FunctionDeclaration,{{3}}或{{3}}的代码中。因此,可以更普遍地说,返回语句只能出现在函数内部。