javascript エラー「Uncaught SyntaxError: Unexpected end of input」の解決方法

javascript エラー「Uncaught SyntaxError: Unexpected end of input」の解決方法

javascriptで、エラー「Uncaught SyntaxError: Unexpected end of input」が発生した場合の原因と解決方法を記述してます。関数作成時にカッコの閉じ忘れなどで発生します。「String.raw」を使用したコードでも発生する例もあります。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 109.0.5414.75

エラー内容

以下のコードを実行時に発生

function hoge() {

  console.log('foo')

エラーメッセージ

Uncaught SyntaxError: Unexpected end of input

画像

firefox(バージョン107)では以下のエラーとなります。

Uncaught SyntaxError: missing } after function body

画像

原因

関数の「カッコ」が閉じられていないため

解決方法

「カッコ」を、閉じておく

function hoge() {

  console.log('foo')

}

別パターン(String.raw)

「String.raw」を使用したコードで、以下のように最後に「\」がある場合にも、同じエラーが発生します。

let str = String.raw`\var\www\`;
// Uncaught SyntaxError: Unexpected end of input

「String.raw」で、最後に「\」がある場合は分割して使用する必要があります。

let str = String.raw`\var\www` + '\\';

console.log(str); // \var\www\

また、firefox107では、以下のエラーとなります。

Uncaught SyntaxError: `` literal not terminated before end of script