Uncaught SyntaxError: Unexpected end of inputの解決方法
- 作成日 2025.06.13
- その他

「Uncaught SyntaxError: Unexpected end of input」は、JavaScriptコードに構文エラーがある場合に発生するエラーメッセージです。このエラーは、予期しない場所でコードの終わりを検出した場合に発生します。主な原因として、括弧やクォーテーションマークの閉じ忘れが挙げられます。この記事では、このエラーの発生条件と具体的な解決方法について詳しく説明します。
- 1. エラーの発生条件
- 2. 原因1: 括弧の閉じ忘れ
- 3. 解決方法1: 括弧を適切に閉じる
- 4. 原因2: クォーテーションマークの閉じ忘れ
- 5. 解決方法2: クォーテーションマークを適切に閉じる
- 6. 原因3: 非同期処理の途中で閉じるのを忘れた場合
- 7. 解決方法3: 関数を正しく閉じる
- 8. 原因4: 不要な改行や末尾の余分な文字
- 9. 解決方法4: 余分な改行や文字を削除
- 10. 原因5: コメントの書き方の誤り
- 11. 解決方法5: コメントの書き方を確認
- 12. 原因6: JSON構文の誤り
- 13. 解決方法6: JSON構文を確認
- 14. 原因7: JavaScriptのモジュールの誤り
- 15. 解決方法7: モジュールのインポート/エクスポートの記述を確認
- 16. 原因8: JavaScriptファイルの読み込み順序
- 17. 解決方法8: 読み込み順序を正しく設定
- 18. 原因9: モジュールのエクスポート忘れ
- 19. 解決方法9: モジュールをエクスポートする
- 20. 原因10: スクリプトタグの非同期読み込み
- 21. まとめ
エラーの発生条件
- コードの括弧(丸括弧、波括弧、角括弧)やクォーテーションマーク(シングルクォート、ダブルクォート)の閉じ忘れ。
- 非同期処理やコールバック関数などで、関数が途中で閉じられていない場合。
- ファイルの最後に不要な改行や文字が残っている場合。
原因1: 括弧の閉じ忘れ
JavaScriptで関数や条件文、ループ文などの開く括弧を開いたまま閉じ忘れると、このエラーが発生します。
解決方法1: 括弧を適切に閉じる
すべての開いた括弧が閉じられているか確認し、必要に応じて閉じ括弧を追加します。
function exampleFunction() {
if (true) {
console.log("This is correct.");
} // ここで括弧を閉じる
}
原因2: クォーテーションマークの閉じ忘れ
文字列を定義する際に、シングルクォートやダブルクォートを開いて閉じ忘れた場合にもこのエラーが発生します。
解決方法2: クォーテーションマークを適切に閉じる
文字列を囲んでいるクォーテーションマークがペアになっているか確認し、閉じ忘れがないように修正します。
let message = "This is a correct string."; // クォーテーションを閉じる
原因3: 非同期処理の途中で閉じるのを忘れた場合
非同期処理(例えば、Promiseやasync/await)で関数の閉じ忘れや不完全な記述があると、このエラーが発生します。
解決方法3: 関数を正しく閉じる
非同期処理内で関数を正しく閉じることで、エラーを解決できます。
async function fetchData() {
const response = await fetch('https://api.example.com');
const data = await response.json();
console.log(data); // 関数を正しく閉じる
}
原因4: 不要な改行や末尾の余分な文字
ファイルの最後に改行や余計な文字が含まれていると、このエラーが表示されることがあります。
解決方法4: 余分な改行や文字を削除
ファイルの最後に不要な改行や文字がある場合、それを削除します。
// 不要な改行や文字はファイルの最後に追加しないようにする
console.log("Hello, world!");
原因5: コメントの書き方の誤り
コメント内で閉じ忘れた場合や、コメントの形式が間違っているとエラーが発生することがあります。
解決方法5: コメントの書き方を確認
コメントが正しく書かれていることを確認します。特に、複数行のコメントでは閉じる部分を見逃しがちです。
// 1行コメント
/*
複数行コメントは閉じ忘れないようにする
*/
原因6: JSON構文の誤り
JSONファイルをJavaScriptで読み込んだ際に、JSONが正しい構文で記述されていない場合、このエラーが発生することがあります。
解決方法6: JSON構文を確認
JSONファイルが正しく記述されているか確認します。特に最後のカンマや閉じ括弧の位置を注意深くチェックします。
{
"name": "John",
"age": 30
} // 最後にカンマを付けない
原因7: JavaScriptのモジュールの誤り
ES6モジュールを使用する際に、`import`や`export`が正しく設定されていない場合、構文エラーが発生します。
解決方法7: モジュールのインポート/エクスポートの記述を確認
`import`や`export`文が正しく書かれているか確認し、構文ミスを修正します。
import { myFunction } from './myModule.js'; // モジュールのインポート文
原因8: JavaScriptファイルの読み込み順序
JavaScriptファイルの読み込み順序が正しくない場合、このエラーが発生することがあります。
解決方法8: 読み込み順序を正しく設定
依存関係のあるJavaScriptファイルの読み込み順序が正しいことを確認します。
<script src="dependency.js"></script>
<script src="main.js"></script> <!-- main.jsの前に依存関係のあるファイルを読み込む -->
原因9: モジュールのエクスポート忘れ
モジュールをエクスポートしていない場合、他のファイルからそのモジュールをインポートする際にエラーが発生します。
解決方法9: モジュールをエクスポートする
モジュールをエクスポートすることを確認し、エクスポートを忘れないようにします。
export function myFunction() {
console.log("Hello, world!");
}
原因10: スクリプトタグの非同期読み込み
scriptタグを非同期で読み込む場合、依存関係が正しく解決されないことがあります。
<script src="script.js" defer></script>
まとめ
「Uncaught SyntaxError: Unexpected end of input」エラーは、構文エラーが原因で発生します。特に括弧やクォーテーションマークの閉じ忘れがよく見られます。これらの原因を一つずつ確認し、修正することでエラーを解決できます。問題がどこにあるかを特定するためには、コードの一部一部を丁寧に確認することが重要です。
-
前の記事
Rubyのエラー『SecurityError: Insecure operation – X』の解決方法 2025.06.12
-
次の記事
Rubyのエラー『SyntaxError: unexpected end-of-input』の解決方法 2025.06.13
コメントを書く