Что означает ошибка SyntaxError: missing formal parameter

Ситу­а­ция: допу­стим, вам нуж­на функ­ция для чат-бота, кото­рая реа­ги­ру­ет на при­вет­ствия. Вы хоти­те, что­бы на сло­во «При­вет» она отве­ча­ла «Здрав­ствуй­те», и пише­те такую функ­цию:

function greet("Привет") {  let greeting = "Здравствуйте!";  return greeting; };

Вро­де всё преду­смот­ре­но, но сра­зу после запус­ка бра­у­зер выда­ёт такую ошиб­ку:

❌ SyntaxError: missing formal parameter

Что это зна­чит: бра­у­зер гово­рит, что у функ­ции отсут­ству­ют фор­маль­ные пара­мет­ры, кото­рые у неё долж­ны быть. Про­ще гово­ря, вы что-то про­пу­сти­ли в объ­яв­ле­нии функ­ции или бра­у­зер не может понять, что же имен­но вы пере­да­ли функ­ции в каче­стве аргу­мен­тов.

В нашем при­ме­ре: мы объ­яви­ли функ­цию, но вме­сто пере­мен­ной в каче­стве пара­мет­ра ука­за­ли кон­крет­ное зна­че­ние «При­вет». Так делать нель­зя, пото­му что «При­вет» — это не пере­мен­ная, а функ­ции нуж­ны аргу­мен­ты, кото­рые могут при­ни­мать раз­ные зна­че­ния. Надо было сде­лать так:

function greet(userInput) {  let greeting = "Здравствуйте!";  if (userInput =="Привет"){ return greeting; } };

Как исправить ошибку SyntaxError: missing formal parameter

  1. Посмот­ри­те, пере­да­ли ли вы функ­ции все нуж­ные пара­мет­ры при вызо­ве или объ­яв­ле­нии. Ино­гда к такой ошиб­ке при­во­дит про­стая невни­ма­тель­ность.
  2. Про­верь­те, есть ли в объ­яв­ле­нии функ­ции то, что пере­мен­ной не явля­ет­ся. Если есть — заме­ни­те на пере­мен­ные.

Напри­мер, кажет­ся, что с этой функ­ци­ей всё в поряд­ке — при объ­яв­ле­нии не исполь­зу­ют­ся уже гото­вые зна­че­ния, а берут­ся PHP-переменные. Но на самом деле при такой запи­си функ­ция сна­ча­ла най­дёт зна­че­ния $result['seats_count'] и $result['booked'], и толь­ко потом про­дол­жит рабо­тать с функ­ци­ей. Как резуль­тат — ошиб­ка SyntaxError: missing formal parameter, пото­му что функ­ция сра­зу полу­чи­ла гото­вые зна­че­ния вме­сто пере­мен­ных:

<script type="text/javascript">    function col(<?=$result['seats_count']?>,<?=$result['booked']?>){        if((<?=$result['seats_count']?>><?=$result['booked']?>))$('.table.table-bordered.booking tbody tr').css("background-color","#f55");    }; </script>

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

Перед вами — код с этой ошиб­кой. Смо­же­те её най­ти?

function content_upload(this) {
  $.ajax({
    url: "/userpages/uploadContent.php",
    type: "GET",
    cache: true,
    obj: data: { data: $(obj).find('input').val() },
    success: function (data) {
      $("#dataUpload").html(data);
      $("#dataUpload").css('display', 'none');
      $("#dataUpload").fadeIn("slow");
      var height_right_side = $('#dataUpload').height();
      $('#dataUpload').css('height', height_right_side);
      $('#my_pinokio_main_area').css('height', height_right_side + 40);
      $('#my_account_area').css('height', height_right_side + 20);
    }
  });
  }