SyntaxError: return not in function

JavaScript の例外 "return (or yield) not in function" は、 return 文または yield 文が関数の外側で呼び出されたときに発生します。

メッセージ

SyntaxError: 'return' statement outside of function (Edge)
SyntaxError: return not in function (Firefox)
SyntaxError: yield not in function (Firefox)

エラー種別

SyntaxError

原因

return 文か yield 文が 関数 の外側で呼び出されました。どこかで、中括弧を忘れたのかもしれません。 return 文と yield 文は、関数内で使用しなければなりません。これらの文は、関数の実行を終了 (または、停止や再開) し、関数の呼び出し元に返す値を指定するからです。

中括弧がない場合

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

// SyntaxError: return not in function

一見すると、中括弧は正しく見えますが、このコードスニペットでは、最初の if 文の後の { を忘れています。正しくは以下のようにします。

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

関連情報