JavaScript
Uncaught SyntaxError: missing ) after argument list
関数呼び出しの括弧が閉じていない
こんな症状
関数を呼び出した行で「missing ) after argument list」と出る。閉じ括弧 ) の数が足りないか、引数のカンマ・クォートが欠けているのが原因だよ。
まず試す
エラー行とその少し上で ( と ) の数が合っているか確認する(VS Codeで括弧をクリックすると対応が光る)。
js
// ❌ alert( の ) を閉じ忘れ
alert("こんにちは、" + name;
// ✅ ) を閉じる
alert("こんにちは、" + name);これで直らなければ、下の「自分のケース」を確認。
🔍 自分のケースはどれ?
- ✓console.log / alert の最後の ) を忘れた
→ 閉じ括弧 ) を足す。 - ✓引数の間のカンマを忘れた
→ 引数が複数なら間にカンマを入れる。 - ✓文字列のクォートを閉じ忘れた
→ クォート(" や ')が閉じているか確認する。エディタの色分けが変なら閉じ忘れ。
なぜ起きる?
関数呼び出しの閉じ括弧 ) が足りないよ。よくあるのは、(1) console.logやalertの最後の ) を書き忘れた、(2) 引数の間のカンマを忘れた、(3) 文字列のクォートを閉じ忘れて、そこから先が全部文字列扱いになった、の3つ。括弧のネストが深い式(関数の中で関数を呼ぶなど)で特に起きやすいんだ。エラーメッセージの行番号は実際のミス箇所より後ろを指すことがあるので、表示された行の少し上も見るのがコツだよ。
✕ エラーが起きるコード
const name = "太郎";
alert("こんにちは、" + name;
// Uncaught SyntaxError: missing ) after argument list
// ← alert( の閉じ括弧がない✓ 直したコード
const name = "太郎";
alert("こんにちは、" + name); // ✅ ) を閉じる
// ネストが深いときは変数に分けると安全
const message = "こんにちは、" + name;
alert(message);✅ 直ったか確認
保存して再読み込み。SyntaxError が消え、関数が正しく実行されればOK。
この解決法は役立ちましたか?
🔗 関連するエラー
- Uncaught SyntaxError: Identifier 'x' has already been declared — 同じ変数名を2回宣言している
- Uncaught SyntaxError: Illegal return statement — 関数の外でreturnを使っている
- Uncaught TypeError: Cannot read properties of null (reading 'addEventListener') — 取得しようとしたHTML要素が見つかっていない
- Uncaught ReferenceError: Cannot access 'x' before initialization — let/constの宣言前にアクセスしている
- Invalid left-hand side in assignment — 代入できないものに代入しようとしている
🔗 別カテゴリの関連エラー
📖 この問題を学べるレッスン
✏️ 手を動かして練習
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- JavaScriptとは?初心者向けにわかりやすく解説 — 変数・関数・イベントの基本
- JavaScriptでボタンクリックを動かす方法 — ボタンクリック時の動作を解説