SyntaxError: return not in function

return 语句在 函数 外部被调用时,会发生 JavaScript 异常“return not in function”。

消息

SyntaxError: Illegal return statement (V8-based)
SyntaxError: return not in function (Firefox)
SyntaxError: Return statements are only valid inside functions. (Safari)

错误类型

SyntaxError.

哪里出错了?

return 语句在 函数 外部被调用。也许某些地方缺少花括号?return 语句必须在函数中,因为它会结束函数执行并指定一个值返回给函数调用者。

示例

缺少花括号

js
function cheer(score) {
  if (score === 147)
    return "Maximum!";
  }
  if (score > 100) {
    return "Century!";
  }
}

// SyntaxError: return not in function

乍一看,花括号似乎是正确的,但此代码片段在第一个 if 语句后缺少一个 {。正确的写法是

js
function cheer(score) {
  if (score === 147) {
    return "Maximum!";
  }
  if (score > 100) {
    return "Century!";
  }
}

另见