Функция содержит код, который можно выполнять снова и снова.

Вот пример функции:

const calculateOnePlusOne = function () {
   return 1 + 1;
};
const result1 = calculateOnePlusOne();
const result2 = calculateOnePlusOne();
const result3 = calculateOnePlusOne();

Хотя функция calculateOnePlusOne определена только один раз (в строках 1–3), ее можно запускать любое количество раз (3 раза в приведенном выше примере).

Эта функция, по общему признанию, очень повторяющаяся и статическая. Он просто добавляет 1 и 1 каждый раз. Нет реальной пользы от запуска функции более одного раза, поскольку всегда возвращается один и тот же результат (2).

Чтобы создать более полезную функцию, вы можете воспользоваться преимуществами параметров функции (или сокращенно параметров). С параметрами функция становится более обобщенной (т. е. настраиваемой). Давайте погрузимся глубже!

Первый взгляд на параметры

В этом разделе представлен пример, в котором (почти) повторяющийся код встречается в нескольких местах:

Этот код вычисляет логарифм myInput, но с другим основанием ( 2, 10, 16). Автору кода может быть понятно, что происходит, но другим может быть сложнее понять, что происходит:

Это отличная возможность создать новую функцию, содержащую сложную формулу. Это позволяет написать формулу только один раз, а также обеспечивает абстракцию, которая очищает внешний вид кода.

Для начала давайте проанализируем и найдем любые значения, которые можно обобщить в почти дублированном коде. В нашем примере это вводимое число и базовое число:

Это подходящие кандидаты для преобразования в параметры функции.

Чтобы указать параметры, вы предоставляете разделенный запятыми список имен в скобках. Затем параметры input и base просто становятся переменными для использования в теле функции:

Как мы узнали из раздела 3 основных типа функций JavaScript, приведенный выше код является выражением функции, и для его повторного использования мы должны присвоить его переменной:

Придумывание описательных имен переменных (для функции и ее параметров) дает вам, как автору функции, возможность документировать назначение кода. Такие термины, как calculateLog и base, помогают другим пользователям понять, что делает код (особенно по сравнению со сложной начальной версией этого кода).

Последние штрихи

На данный момент мы переместили повторяющийся код в новую функцию calculateLog. Теперь нам просто нужно выполнить функцию.

При передаче значений функции не забывайте порядок параметров. В определении нашей функции сначала указывается input, а затем base. Итак, при вызове функции нам нужно передать входное число и основание в таком порядке:

Мы также можем снова запустить эту функцию с дополнительными значениями и основаниями:

Одно интересное замечание: JavaScript не проверяет количество значений, переданных функции. Совершенно законно вызывать calculateLog так:

Хотя отсутствие значения для второго параметра может показаться странным, авторы функций часто могут воспользоваться подобными ситуациями. Например, параметру может быть присвоено значение по умолчанию, если пользователь его не предоставил (подробнее об этом в следующей статье!).

Надеюсь, вам понравилось это введение в параметры функций в JavaScript!