SyntaxError: missing ; before statement

JavaScript の例外 "missing ; before statement" は、どこかでセミコロンが欠けており、 自動セミコロン挿入 (ASI) によって追加できない場合に発生します。 JavaScript がソースコードを正しく解釈するためには、セミコロンを置く必要があります。

メッセージ

SyntaxError: Expected ';' (Edge)
SyntaxError: missing ; before statement (Firefox)

エラー種別

SyntaxError

原因

どこかでセミコロン (;) を忘れています。JavaScript 文はセミコロンで終えなければなりません。一部は、自動セミコロン挿入 (ASI) の影響を受けますが、この場合に JavaScript がソースコードを正確に解釈するためには、セミコロンを置く必要があります。

しかし、多くの場合、このエラーは、文字列の不適切なエスケープや var の誤った使用など、その他のエラーの結果として発生します。また、どこかで括弧が多すぎるかもしれません。このエラーが発生した場合は、注意深く構文をチェックしてください。

エスケープされていない文字列

このエラーは、次のように、適切に文字列をエスケープしておらず、文字列がすでに終了していると JavaScript エンジンが予測したときによく発生します。

var foo = 'Tom's bar';
// SyntaxError: missing ; before statement

二重引用符を使用するか、アポストロフィをエスケープするかしてください。

var foo = "Tom's bar";
var foo = 'Tom\'s bar';

var を使用したプロパティ宣言

オブジェクトや配列のプロパティを var を使って宣言することはできません

var obj = {};
var obj.foo = 'hi'; // SyntaxError missing ; before statement

var array = [];
var array[0] = 'there'; // SyntaxError missing ; before statement

var キーワードを省略してください。

var obj = {};
obj.foo = 'hi';

var array = [];
array[0] = 'there';

誤ったキーワード

他のプログラミング言語から来た人は、 JavaScript では同じ意味を持たない、あるいはまったく意味を持たないキーワードを使ってしまうこともよくあります。

def print(info){
  console.log(info);
}; // SyntaxError missing ; before statement

functiondef の代わりに使用してください。

function print(info){
  console.log(info);
};

関連情報