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

Именованные функции

Именованные функции являются наиболее распространенным типом функций в JavaScript. Они определяются с помощью ключевого слова function, за которым следует имя функции, набор круглых скобок, которые могут содержать или не содержать параметры, и набор фигурных скобок, заключающих тело функции. Вот пример именованной функции, которая принимает два параметра и возвращает их сумму:

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

Анонимные функции

Анонимные функции похожи на именованные функции, но у них нет имени функции. Они часто используются в качестве обратных вызовов в прослушивателях событий или в качестве аргументов для других функций. Вот пример анонимной функции, которая принимает строку и записывает ее в консоль:

const logMessage = function(message) {
  console.log(message);
};

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

Стрелочные функции — это новый тип функций, представленный в ES6. Это сокращенный способ написания анонимных функций, и они имеют более лаконичный синтаксис. Они определяются с помощью стрелки (=›) между списком параметров и телом функции. Вот пример стрелочной функции, которая принимает один параметр и возвращает его квадрат:

const square = (x) => {
  return x * x;
};

Немедленно вызываемые функциональные выражения (IIFE)

Выражение немедленно вызываемой функции (IIFE) — это функция, которая выполняется, как только она определена. Он определяется с помощью анонимной функции, заключенной в круглые скобки, за которой следует еще один набор круглых скобок, содержащий любые аргументы, необходимые функции. Вот пример IIFE, который устанавливает переменную в функцию, возвращающую квадрат числа:

const square = (function(x) {
  return x * x;
})(5);