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

Что означает ошибка 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);
    }
  });
  }
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
easy