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


Стрелочные функции - это особенность ES6, их поведение в целом такое же, как и у функций. Это анонимные функции со специальным синтаксисом, у них нет собственных this, arguments или super. Их тоже нельзя использовать в качестве конструкторов.

Стрелочные функции часто используются как обратные вызовы собственных функций JS, таких как карта, фильтр или сортировка. Причина их названия связана с использованием в синтаксисе.=>

Чтобы определить стрелочную функцию, мы используем следующую структуру:() => {}

const greet = (name) => { return "Hello " + name + "!"; }

console.log(greet("Eric"));      // prints out Hello Eric!

В этой функции nameаргумент greetфункции используется внутри функции для создания новой строки и возврата ее с помощью returnоператора.

В случае, если функция получает только один аргумент, мы можем опустить круглые скобки:

const greet = name => { return "Hello " + name + "!"; }

console.log(greet("Eric"));      // prints out Hello Eric!

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

const greet = name => "Hello " + name + "!";

console.log(greet("Eric"));      // prints out Hello Eric!

Использование стрелки в качестве обратного вызова по сравнению с обычной функцией:

let numbers = [3, 5, 8, 9, 2];

// Old way
function multiplyByTwo(number){
    return number * 2;
}

let multipliedNumbers = numbers.map(multiplyByTwo);

console.log(multipliedNumbers);              // prints out: 6, 10, 16, 18, 4

// Using ES6 arrow functions
const multiplyByTwo = number => number * 2;

let multipliedNumbers = numbers.map(multiplyByTwo);

console.log(multipliedNumbers);              // prints out: 6, 10, 16, 18, 4

Упражнение

Определите стрелочную функцию, divideByTwoкоторая принимает число и возвращает это число, деленное на 2.