Итоги
В этом уроке вы узнали, что:
- Функция — это именованный кусок кода, который вы пишете один раз и можете запускать сколько угодно раз. Благодаря функциям не нужно повторять код, а когда вы меняете функцию, изменение действует везде, где она используется.
- Функцию определяют с помощью ключевого слова
function, имени, скобок с параметрами и тела в фигурных скобках:function printArea(width, height) { ... }. Само по себе определение ничего не запускает. - Функцию вызывают по имени со скобками:
printArea(5, 6);. Хорошая практика — сначала определять функции, а вызывать их ниже. - Параметр — это имя в определении, аргумент — это значение в вызове. Аргументы попадают в параметры по порядку. Параметр, для которого нет аргумента, равен
undefined, если только у него нет значения по умолчанию:function printPrice(price, currency = "EUR"). returnвозвращает значение туда, откуда вызвали функцию, поэтому вызов можно использовать как значение:console.log(add(2, 3)),const total = add(2, 3) * 2;.console.logлишь показывает значение. Функция безreturnвозвращаетundefined.returnсразу завершает функцию, и остальная её часть не выполняется. В случае с условиями побеждает первыйreturn, который выполнится.- Переменные, созданные внутри функции, и её параметры существуют только внутри этой функции: они локальные. Переменные снаружи можно использовать внутри функций. Чтобы получить значение из функции, верните его.
- Функция может получить массив, обойти его циклом и вернуть результат.
returnставят после цикла. - Стрелочные функции — более короткий способ записывать функции:
const add = (a, b) => a + b;возвращает значение после стрелки. Если тело в фигурных скобках, нуженreturn:const area = (width, height) => { ... return ...; };.
В следующем уроке, «Объекты», вы научитесь хранить значения, которые относятся друг к другу, например имя и возраст человека, в одном значении.
Задание
- 1
Давайте потренируемся. Напишите функцию
cartTotalс двумя параметрами:prices(массив цен) иdiscountсо значением по умолчанию0. Функция возвращает сумму цен за вычетом скидки. ВыведитеcartTotal(cart)иcartTotal(cart, 50). Программа выведет280и230. - 2
Напишите стрелочную функцию
formatPriceс параметромprice, которая возвращает цену в виде текста с валютой, например230 EURдля230. С её помощью выведите итог со скидкой:formatPrice(cartTotal(cart, 50)).