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)

错误类型

什么地方出错了?

return 语句在函数外部被调用了。可能是某处缺失了花括号?return 语句必须位于函数内部,因为它会终止函数执行并指定一个值返回给函数调用者。

示例

缺少大括号

js
function cheer(score) {
  if (score === 147)
    return "最大!";
  }
  if (score > 100) {
    return "世纪!";
  }
}

// SyntaxError: return not in function

花括号乍一看之下似乎是正确的,但这段代码在第一个 if 语句后缺少了一个 {。正确的写法应该是:

js
function cheer(score) {
  if (score === 147) {
    return "最大!";
  }
  if (score > 100) {
    return "世纪!";
  }
}

参见