Uncaught SyntaxError: Unexpected token — что это означает?

Когда встре­ча­ет­ся. Допу­стим, вы пише­те цикл for на JavaScript и вспо­ми­на­е­те, что там нуж­на пере­мен­ная цик­ла, усло­вие и шаг цикла:

for var i = 1; i < 10; i++ {   // какой-то код }

После запус­ка в бра­у­зе­ре цикл пада­ет с ошибкой:

❌ Uncaught SyntaxError: Unexpected token 'var'

Что зна­чит. Unexpected token озна­ча­ет, что интер­пре­та­тор ваше­го язы­ка встре­тил в коде что-то неожи­дан­ное. В нашем слу­чае это интер­пре­та­тор JavaScript, кото­рый не ожи­дал уви­деть в этом месте сло­во var, поэто­му оста­но­вил работу.

При­чи­на — ско­рее все­го, вы про­пу­сти­ли что-то из син­так­си­са: скоб­ку, кавыч­ку, точ­ку с запя­той, запя­тую, что-то подоб­ное. Может быть, у вас была опе­чат­ка в слу­жеб­ном сло­ве и язык его не распознал.

Что делать с ошибкой Uncaught SyntaxError: Unexpected token

Когда интер­пре­та­тор не может обра­бо­тать скрипт и выда­ёт ошиб­ку, он обя­за­тель­но пока­зы­ва­ет номер стро­ки, где эта ошиб­ка про­изо­шла (в нашем слу­чае — в пер­вой же строке):

Интерпретатор обязательно показывает номер строки, где произошла ошибка Uncaught SyntaxError: Unexpected token

Если мы нажмём на над­пись VM21412:1, то бра­у­зер нам сра­зу пока­жет стро­ку с ошиб­кой и под­черк­нёт непо­нят­ное для себя место:

Строка с ошибкой Uncaught SyntaxError: Unexpected token

По это­му фраг­мен­ту сра­зу вид­но, что бра­у­зе­ру не нра­вит­ся сло­во var. Что делать теперь:

  • Про­верь­те, так ли пишет­ся эта кон­струк­ция на вашем язы­ке. В слу­чае JavaScript тут не хва­та­ет ско­бок. Долж­но быть for (var i=1; i<10; i++) {}
  • Посмот­ри­те на преды­ду­щие коман­ды. Если там не закры­та скоб­ка или кавыч­ка, интер­пре­та­тор может ругать­ся на код немно­го позднее.

Попробуйте сами

Каж­дый из этих фраг­мен­тов кода даст ошиб­ку Uncaught SyntaxError: Unexpected token. Попро­буй­те это исправить.

if (a==b) then  {}
function nearby(number, today, oneday, threeday) {
  if (user_today == today + 1 || user_today == today - 1)
    (user_oneday == oneday + 1 || user_oneday == oneday - 1)
      && (user_threeday == threeday + 1 || user_threeday == threeday - 1)
  return true
  
  else
     return false
}
var a = prompt('Зимой и летом одним цветом');
if (a == 'ель'); {
  alert("верно");
} else {
  alert("неверно");
}
alert(end);