Значения параметров по умолчанию
Что произойдёт, если вызвать функцию с меньшим числом аргументов, чем у неё параметров? Проверим:
function orderCoffee(type, size) {
console.log(`${type}, размер: ${size}`);
}
orderCoffee("Латте", "большой");
orderCoffee("Эспрессо");Это выведет:
Латте, размер: большой
Эспрессо, размер: undefinedОшибки нет. Параметр size просто не получил значения, поэтому он равен undefined — особому значению «здесь ничего нет», которое вы знаете по массивам.
Часто есть значение, которое подходит в большинстве случаев, а другое нужно передавать лишь время от времени. Например, большинство людей заказывает кофе среднего размера. Для таких случаев у параметра может быть значение по умолчанию: после имени параметра напишите = и значение:
function orderCoffee(type, size = "средний") {
console.log(`${type}, размер: ${size}`);
}
orderCoffee("Латте", "большой");
orderCoffee("Эспрессо");Это выведет:
Латте, размер: большой
Эспрессо, размер: среднийКогда в вызове передан аргумент для size, функция использует его. Когда не передан, функция использует значение по умолчанию "средний".
Поскольку аргументы попадают в параметры по порядку, параметры со значениями по умолчанию ставят в конец. Тогда последние аргументы можно не передавать, а переданные всё равно попадут в нужные параметры.
Задание
- 1
Наш магазин показывает большинство цен в евро. В конец программы добавьте вызов
printPrice(25);без валюты. Что говорит последняя строка? - 2
Дайте параметру
currencyзначение по умолчанию"EUR". Тогда последняя строка будетЦена: 25 EUR, а два других вызова по-прежнему выведут свои валюты.