Функции в JavaScript: параметры, return и стрелочный синтаксис

Функция — именованный (или анонимный) блок кода, который можно вызвать повторно. Так вы избегаете копипасты и тестируете куски логики отдельно.

Параметры и return

Входные данные передавайте аргументами. Результат возвращайте через return. Если функция только «что-то делает» с DOM — это side effect; такие функции тоже нужны, но отделяйте расчёты от отрисовки, когда возможно.

Стрелочные функции

Короткий синтаксис удобен для колбэков. Помните про отличия this — в курсе DOM это всплывёт в обработчиках.

Дальше

Связываем язык со страницей: урок DOM.

HTML

<label>Цена <input id="price" type="number" value="1000"></label>
<label>Скидка % <input id="sale" type="number" value="10"></label>
<button id="calc" type="button">Посчитать</button>
<p id="result"></p>

JavaScript

function priceWithSale(price, percent) {
  const safePercent = Math.min(Math.max(percent, 0), 100);
  return Math.round(price * (1 - safePercent / 100));
}

const calc = document.querySelector('#calc');
calc.addEventListener('click', () => {
  const price = Number(document.querySelector('#price').value);
  const sale = Number(document.querySelector('#sale').value);
  const total = priceWithSale(price, sale);
  document.querySelector('#result').textContent = 'Итого: ' + total + ' ₽';
});

Практическое задание

Задание: вынесите расчёт в чистую функцию и подключите к UI.

  • Есть функция с return (без работы с DOM внутри расчёта)
  • Обработчик клика только читает поля и пишет результат
  • Граничные значения скидки обрабатываются корректно
  • Нет дублирования формулы в двух местах