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

Стрелочные функции более компактны, поскольку им не требуется синтаксис именованной функции или ключевое слово return, и их даже можно записать в одну строку!

Функция стрелки:

let arrowFunction = (a,b) => a+b;

По сравнению с:

notArrowFunction = fuction(a,b) {
  return a + b
};

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

let arrowFunction = param => param + 'wow!';

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

const maps = x => x.map(y => y * 2);

Как видите, использование двух стрелочных функций превратило потенциально массивный блок кода в одну строку! Однако прежде чем приступить к замене всех функций стрелочными функциями, в некоторых случаях это рекомендуется, а в других — не лучшая идея. Одним из недостатков стрелочных функций является то, что они не имеют привязки к этомуключевому слову. Ключевое слово this в стрелочных функциях будет вызывать объект, определяющий стрелочные функции, в отличие от обычных функций, где оно ссылается на объект, вызывающий функцию. На этом пока все, но на следующей неделе я напишу статью о том, когда НЕ следует использовать функции стрелок, так что следите за обновлениями!

источники: https://www.w3schools.com/js/js_arrow_function.asp