【问题标题】:Javascript return illegal statement [duplicate]Javascript返回非法语句[重复]
【发布时间】:2017-04-01 22:07:21
【问题描述】:
if(choice1 === choice2) {
return"The result is a tie!";

}

else if (choice1 === "rock") {

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

}
else {
    return "paper wins";
}

}

请帮帮忙

【问题讨论】:

  • 问题是:非法退货声明
  • return 应该在函数内部使用
  • 你想返回什么?你只能返回一个函数

标签: javascript return


【解决方案1】:

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

要了解 ECMA-262 的相关部分,请从 §14.1 Function Definitions 开始,其中一个是 FunctionDeclaration,其中包括一个 FunctionBody,它由一个 FunctionStatementList 组成,其中包含一个StatementList。现在它由(令人惊讶的)零个或多个StatementListItems 组成,它们是Statements,一种类型的语句是ReturnStatement,即described in §13.10。

所以 return 语句只能出现在函数体中,而函数体只能出现在 FunctionDeclaration、FunctionExpression 或 ArrowFunction 的代码中。因此,可以更一般地说,return 语句只能出现在函数内部。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    相关资源
    最近更新 更多