Стрелочные функции
Стрелочные функции (arrow functions) представляют сокращенную версию обычных функций. Стрелочные функции образуются с помощью знака стрелки (=>), перед которым в скобках идут параметры функции, а после - собственно тело функции. Например:
let sum = (x, y) => x + y; let a = sum(4, 5); console.log(a); // 9 let b = sum(10, 5); console.log(b); // 15
В данном случае функция (x, y) => x + y осуществляет сложение двух чисел и присваивается переменной sum.
Поскольку после стрелки фактически идет конкретное значение,
функция возвращает это значение.
И мы можем через переменную sum вызвать данную функцию.
Если после стрелки идет операция или выражение,
которое возвращает значение, то это значение фактически возвращается из стрелочной функции.
Но в качестве тела функции может примяться выражение,
которое ничего не возвращает и просто выполняет некоторое действие:
let sum = (x, y) => console.log(x + y); sum(4, 5); // 9 sum(10, 5); // 15
Если функция принимает один параметр, то скобки вокруг него можно опустить:
var square = n => n * n; console.log(square(5)); // 25 console.log(square(6)); // 36 console.log(square(-7)); // 49
Если тело функции представляет набор выражений, то они облекаются в фигурные скобки:
var square = n => {
let result = n * n;
return result;
}
console.log(square(5)); // 25
Для возвращения результата из функции в таком случае применяется стандартный оператор return.
Особо следует остановиться на случае, когда стрелочная функция возвращает объект:
let user = (userName, userAge) => ({name: userName, age: userAge});
let tom = user("Tom", 34);
let bob = user("Bob", 25);
console.log(tom.name, tom.age); // "Tom", 34
console.log(bob.name, bob.age); // "Bob", 25
Объект также определяется с помощью фигурных скобок, но при этом он заключается в круглые скобки.
Если стрелочная функция не принимает никаких параметров, то ставятся пустые скобки:
var hello = ()=> console.log("Hello World");
hello(); // Hello World
hello(); // Hello World