Стрелочные функции — это новый синтаксис для написания функций в JavaScript, представленный в ECMAScript 6 (ES6). Это сокращенный способ написания функциональных выражений, более лаконичный и удобный для чтения.

Вот пример выражения регулярной функции:

var add = function(x, y) {
  return x + y;
}

А вот эквивалентная стрелочная функция:

var add = (x, y) => x + y;

В этом примере мы используем функцию стрелки для определения функции, которая складывает два числа вместе. Стрелка => отделяет параметры функции от тела функции, а выражение справа от стрелки оценивается и возвращается как результат функции.

Вот некоторые другие особенности стрелочных функций:

  • Они всегда анонимны. Чтобы дать стрелочной функции имя, вам нужно присвоить его переменной или свойству.
  • У них более короткий синтаксис для функций с одним выражением. Если тело функции содержит только одно выражение, фигурные скобки и ключевое слово return можно опустить.
  • Они имеют лексическую привязку this. Стрелочные функции не имеют собственного значения this, а вместо этого наследуют значение this из окружающего кода. Это делает их полезными для обратных вызовов и обработчиков событий.

Вот пример, демонстрирующий эти функции:

// Regular function expression
var greet = function(name) {
  console.log("Hello, " + name + "!");
};

// Arrow function expression
var greetArrow = name => console.log("Hello, " + name + "!");

greet("Alice"); // Outputs "Hello, Alice!"
greetArrow("Bob"); // Outputs "Hello, Bob!"

Несколько параметров

Чтобы написать стрелочную функцию с несколькими параметрами в JavaScript, вы можете просто включить имена параметров в круглые скобки после символа стрелки (=>). Вот пример:

const multiplyNumbers = (num1, num2) => num1 * num2;
console.log(multiplyNumbers(5, 7)); // Output: 35

В этом примере стрелочная функция multiplyNumbers принимает два параметра num1 и num2, перемножает их вместе и возвращает результат, используя неявный синтаксис возврата.

Стрелочные функции с несколькими операторами

Если вы хотите включить в тело функции несколько операторов, вы можете заключить их в фигурные скобки и использовать ключевое слово return, чтобы указать, какое значение следует возвращать:

const addNumbers = (num1, num2) => {
  const result = num1 + num2;
  return result;
}
console.log(addNumbers(5, 7)); // Output: 12

В этом примере стрелочная функция addNumbers принимает два параметра num1 и num2, складывает их вместе, присваивает результат переменной result, а затем возвращает это значение.