SyntaxError: missing ; before statement

Сообщение

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

Тип ошибки

Что пошло не так?

Отсутствует точка с запятой (;). Инструкции JavaScript должны заканчиваться точкой с запятой. В некоторых случаях имеет место автоматическая вставка точки с запятой (ASI), но в данном случае необходимо её поставить, чтобы JavaScript мог правильно обработать исходный код.

Часто эта ошибка является следствием другой ошибки, например, некорректного экранирования строк или неправильного использования var. Кроме того, где-то может быть слишком много скобок. Тщательно проверьте синтаксис при возникновении этой ошибки.

Примеры

Неэкранированные строки

Эта ошибка может легко возникнуть, если не экранировать строку правильным образом, из-за чего JavaScript будет рассматривать это место как конец строки. Например:

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

Можно использовать двойные кавычки или экранировать апостроф:

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

Объявление свойств через var

Нельзя объявить свойство объекта или массива с помощью var.

js
var obj = {};
var obj.foo = 'привет'; // SyntaxError missing ; before statement

var array = [];
var array[0] = 'всем'; // SyntaxError missing ; before statement

Ключевое слово var необходимо опустить:

js
var obj = {};
obj.foo = "привет";

var array = [];
array[0] = "всем";

Неправильные ключевые слова

При переходе с другого языка программирования частой проблемой является использование ключевых слов, которые в JavaScript имеют другое значение или ничего не означают.

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

Вместо def используйте function:

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

Смотрите также