Стрелочные функции
Сегодня расскажу тебе еще об одном виде функций, а именно, о стрелочных функциях. И нет, стрелочные они не потому что забивают кому-то стрелу или, которые не хотят работать и переводят стрелки на других)
Этот тип функций пришел с стандартом ES6 и завоевал сердца всех проггеров. А все потому, что зачастую они намного облегчают жизнь, т.к., отчасти они более простые и их запись занимает меньше строчек кода)
Синтаксис
Сразу же начну с синтаксиса:
let func = () => alert('Я стрелочная функция!'); func();
Сразу же приведу код для сравнения с обычной функцией:
function func() { alert('Я стрелочная функция'); }
Две функции, которые выполняют абсолютно одинаковые действия.
В случае со стрелочной функцией ты уже не используешь ключевого слова function
. И как, видишь, функцию ты записываешь в переменную func
, которую потом вызываешь.
В func
ты записываешь следующую конструкцию () => alert(...)
. Эта конструкция самая простая, когда тебе нужно выполнить только одной действие. Если же нужно выполнить несколько действия, то тут ты обязан добавить фигурные скобки и после них поставить символ ;
. Пример:
let func = () => { alert('Я стрелочная функция'); alert('Честно'); };
Аргументы функции
Если функция должна принимать аргументы, то тут тоже все просто. По аналогии с обычными функциями ты можешь указать аргументы в скобках при определении функции и передавать их туда при вызове.
let func = (a) => { alert(a); }; func(3); //выдаст в alert значение 3
Возвращение значения в стрелочных функциях
Так же стрелочные функции позволяют не писать ключевое слово return
, если функция что-то должна вернуть. Но работает это только в том случае, если выполняется одно действие.
let func = () => 1 + 1; let func2 = () => { return 1 + 1; };
Функции func
и func2
– полностью идентичны, поэтому зачем писать return
и добавлять фигурные скобки, если можно обойтись и без них.
Если нужно выполнить несколько действий в функции и вернуть результат, то тут уже в любом случае нужно добавлять фигурные скобки и ключевое слово return
.
let func = () => { let result = 2 + 2; return result; };
P.S. Между этими есть еще кое-какая разница, но об этом мы будем говорить когда-нибудь попозже. Когда в целом подтянем твои знания. Ибо чистую теорию сейчас давать не имеет смысла. А практика – будет на данный момент для тебя скучна по этой теме и может даже отпугнуть от изучения. Поэтому, позже, мой друг.
Домашка
Напиши стрелочную функцию, которая будет запрашивать с помощью prompt
2 числа у пользователя и перемножать их между собой. Полученное значение функция должна возвращать с помощью ключевого слова return
. Результат выполнения функции сохрани в переменную.