# Функции: повторяемые действия

Курс: Claude Code и терминал: с 0 — https://zero2claude.ru/learn/code-terminal
Канонический URL: https://zero2claude.ru/learn/code-terminal/10-6-funkcii

Функция — это упакованное действие с именем, которое можно вызывать снова и снова: передаёшь данные на вход, получаешь результат на выходе.

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

## Функция — это упакованное действие

Функция — это действие, которому дали имя и которое можно вызывать снова и снова. Ты один раз описываешь, что нужно сделать, а потом просто «нажимаешь кнопку»:

```
function поздороваться(имя) {
  return "Привет, " + имя + "!"
}
```

Теперь, когда нужно поздороваться, ты не пишешь приветствие заново — ты **вызываешь** функцию:

```
поздороваться("Аня")   // "Привет, Аня!"
поздороваться("Боря")  // "Привет, Боря!"
```

Одно описание — сколько угодно вызовов. Это и есть главная польза.

## Вход и выход: аргументы и результат

У кофемашины есть вход (зёрна и вода) и выход (кофе). У функции так же:

- **Аргументы** — это данные, которые ты передаёшь функции на вход. В примере выше аргумент — это `имя`.
- **Результат** — это то, что функция возвращает на выходе. Слово `return` как раз и означает «верни вот это».

Передал разные аргументы — получил разные результаты, а само действие осталось одним и тем же. Не нужно переписывать рецепт ради каждой новой чашки.

## Зачем это тебе

Главная идея функций — **не повторяться**. Если какое-то действие нужно сделать много раз, его упаковывают в функцию и потом просто вызывают. Когда Claude предлагает тебе код, ты часто будешь видеть функции — теперь ты знаешь, что это просто «кнопка», у которой есть имя, вход и выход.

Держи в голове образ кофемашины: имя функции — это название кнопки, аргументы — то, что ты в неё засыпаешь, результат — то, что получаешь. С такой картинкой код перестаёт пугать.

## Попробуй

Задания в терминале нет. Придумай свою «функцию из жизни»: например, «приготовить бутерброд» — что будет аргументами (хлеб, начинка), а что результатом (готовый бутерброд)? Затем ответь на вопросы ниже — и поздравляю, ты прошёл уровень «JavaScript без страха».
