JS Core

Функции

Научиться создавать функции для повторного использования кода, понимая параметры, аргументы, return и разницу между declaration и expression.

Начальный (Beginner)
Нужно знать:Циклы

Кратко

Функция — это блок кода, который можно вызывать много раз. Вы определяете функцию один раз и используете сколько угодно раз. Параметры — это переменные функции. Return — это значение, которое функция возвращает.


Подробно

Зачем нужны функции?

Без функций каждый раз, когда нужно выполнить одно и то же действие, пришлось бы копировать код. Функция позволяет записать действие один раз и вызывать его сколько угодно раз.

Синтаксис: function greet(name) { return 'Привет, ' + name + '!'; }

let message = greet('Анна'); // 'Привет, Анна!'

Параметры vs Аргументы:

  • Параметры — имена в определении функции: (name, age)
  • Аргументы — реальные значения при вызове: greet('Анна', 25)

Return:

  • return возвращает значение из функции
  • Без return функция возвращает undefined
  • return завершает функцию — код после return не выполняется

Function Declaration vs Expression: // Declaration — можно вызывать до определения (hoisting) function add(a, b) { return a + b; }

// Expression — нельзя вызывать до определения const multiply = function(a, b) { return a * b; }

Локальные переменные: Переменные, объявленные внутри функции, доступны только внутри неё.


Ментальная модель

Функция — как рецепт. Один раз записали: «возьмите муку, яйца, сахар → получите торт». Теперь можно «вызвать рецепт» сколько угодно раз, меняя только ингредиенты (параметры).


Примеры

**Самый простой:**

javascript
function greet(name) {
  return 'Привет, ' + name + '!';
}

console.log(greet('Анна')); // Привет, Анна!
console.log(greet('Пётр')); // Привет, Пётр!

Функция принимает имя и возвращает приветствие. Один код — много вызовов.

**Простой:**

javascript
function add(a, b) {
  return a + b;
}

function multiply(a, b) {
  return a * b;
}

console.log(add(2, 3));      // 5
console.log(multiply(2, 3)); // 6

Функции возвращают результат через return. Можно создавать функции для любых вычислений.

**Реальный пример:**

javascript
function calculateArea(width, height) {
  if (width <= 0 || height <= 0) {
    return null; // Ошибка: размеры должны быть положительными
  }
  return width * height;
}

let area = calculateArea(10, 5);
if (area !== null) {
  console.log('Площадь: ' + area); // Площадь: 50
} else {
  console.log('Неверные размеры');
}

Функция может возвращать null для индикации ошибки — это.common pattern в JavaScript.


Частые ошибки

**Неправильно:** Забывать return

**Почему:** Без return функция возвращает undefined. Частая ошибка: function add(a, b) { a + b; }

**Правильно:** Всегда проверяйте, что функция возвращает ожидаемое значение.

**Неправильно:** Использовать console.log вместо return

**Почему:** console.log выводит в консоль, но не возвращает значение для дальнейшего использования.

**Правильно:** return — для возврата значения. console.log — для отладки.

**Неправильно:** Вызывать функцию до её определения (expression)

**Почему:** Function expression (const fn = function() {}) не поднимается (hoisted) вверх.

**Правильно:** Используйте function declaration, если нужен hoisting.


Важно запомнить

  • Функция — блок кода для повторного использования
  • Параметры — имена в определении, аргументы — значения при вызове
  • return возвращает значение и завершает функцию
  • Без return — undefined
  • Локальные переменные доступны только внутри функции

Связь

Назад: Вы знаете циклы (J8) — теперь вы можете упаковывать повторяющуюся логику в переиспользуемые функции.

Вперёд: Следующий урок (J10) — стрелочные функции: более короткий синтаксис создания функций.


Читайте дальше

Материалы курса JS Core — PROlab Academy.