← エラー辞典に戻る

JavaScript

Uncaught SyntaxError: Illegal return statement

関数の外でreturnを使っている

こんな症状

returnを書いた行で「Illegal return statement」と表示される。returnが関数の外にあるときに起きるよ。波括弧の閉じ忘れが原因のことも多いよ。

まず試す

その return を関数の中に入れる。波括弧 {} の対応がズレて return が関数の外に出ていないか確認する。

js
// ❌ 関数の外で return
return score;

// ✅ 関数の中なら OK
function checkScore(score) {
  return score;
}

これで直らなければ、下の「自分のケース」を確認。

🔍 自分のケースはどれ?

  • トップレベル(関数の外)に return を書いた
    → 処理を関数で包むか、return ではなく if/else で分岐させる。
  • 波括弧 {} の対応がズレている
    → } を1つ多く書くと以降が関数の外扱いに。VS Codeで括弧をクリックして対応を確認する。
  • if 文だけで囲んで return した
    → if は関数ではない。関数の中に入れる。値を外に渡すなら変数に代入する。

なぜ起きる?

return文は関数の中でしか使えないよ。ファイルのトップレベル(関数の外)にreturnを書くとこのエラーになるんだ。見落としやすいのは波括弧{}の対応ミスで、関数の途中で}を1つ多く書いてしまうと、それ以降のreturnが「関数の外」扱いになるよ。if文だけで囲んだコードにreturnを書いたときにも起きるよ(if文は関数ではないからね)。

✕ エラーが起きるコード
const score = 80;
if (score >= 60) {
  console.log('合格');
}
return score;  // ← 関数の外なのでエラー
// Uncaught SyntaxError: Illegal return statement
✓ 直したコード
function checkScore(score) {
  if (score >= 60) {
    console.log('合格');
  }
  return score;  // ← 関数の中ならOK
}
checkScore(80);

✅ 直ったか確認

保存して再読み込み。SyntaxError が消え、関数が期待どおり値を返せばOK。

🆘 まだ直らないときは

アロー関数やコールバックの波括弧もずれやすい。エラー行の前後の {} を数えてみよう。

Q&Aで質問する →

この解決法は役立ちましたか?

🔗 関連するエラー

🔗 別カテゴリの関連エラー

📖 この問題を学べるレッスン

JSレッスン5:関数で根本から理解する →

✏️ 手を動かして練習

練習ドリル一覧で実際に書いて確認する →

📝 関連ブログ記事

📖 関連する用語

🚀 JSレッスン5:関数で根本解決しよう!

このエラーの背景にある仕組みを、手を動かしながら学べるレッスンがあります。完全無料・登録不要。

JSレッスン5:関数へ →

❓ 関連するQ&A