Полный цикл в digital

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

Стрелочные функции (arrow functions) позоляют сократить определение обычных функций. Стрелочные функции образуются с помощью знака стрелки =>, перед которым в скобках идут параметры функции, а после - собственно тело функции:

(параметры) => действия_функции

Для примера возьмем сначала обычную примитивную функцию, которая выводит сообщение на консоль:

function hello(){
console.log("Hello");
}
// вызываем функцию
hello();

Теперь переделаем ее в стрелочную функцию:

let hello = ()=> console.log("Hello");
hello();

В данном случае стрелочная функция присваивается переменной hello, через которую затем можно вызвать данную функцию. Здесь мы не используем параметры, поэтому указываются пустые скобки ()=> console.log("Hello");, далее через имя переменной мы можем вызвать данную функцию.

Передача параметров

Теперь определим стрелочную функцию, которая принимает один параметр:

let print = (mes)=> console.log(mes);
print("Hello Metanit.com");
print("Welcome to JavaScript");

Здесь стрелочная функция принимает один параметр mes, значение которого выводится на консоль браузера.

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

let print = mes=> console.log(mes);
print("Hello Metanit.com");
print("Welcome to JavaScript");

Другой пример - передадим два параметра:

let sum = (x, y)=> console.log("Sum =", x + y);
// Sum = 3
sum(1, 2);      
// Sum = 7
sum(4, 3);      
// Sum = 105
sum(103, 2);

Возвращение результата

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

let sum = (x, y)=> x + y;
// 3
console.log(sum(1, 2));   
// 7  
console.log(sum(4, 3));  
// 105   
console.log(sum(102, 5));

Другой пример - возвратим отфарматированную строку:

const hello = name => `Hello, ${name}`;
// Hello, Tom
console.log(hello("Tom"));   
// Hello, Bob           
console.log(hello("Bob"));    
// Hello, Frodo Baggins          
console.log(hello("Frodo Baggins"));

В данном случае функция hello принимает один параметр name - условное имя и создает на его основе сообщение с приветствием.

Возвращение объекта

Особо следует остановиться на случае, когда стрелочная функция возвращает объект:

let user = (userName, userAge) => ({name: userName, age: userAge});
let tom = user("Tom", 34);
let bob = user("Bob", 25);
// "Tom", 34
console.log(tom.name, tom.age);   
// "Bob", 25  
console.log(bob.name, bob.age);

Объект также определяется с помощью фигурных скобок, но при этом он заключается в круглые скобки.

Функция из нескольких инструкций

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

const square = n => {
let result = n * n;
console.log(result);
}
// 25
square(5);     
// 36
square(6);

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

const square = n => {
let result = n * n;
return result;
}
// 25
console.log(square(5));
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг