Возврат значений
Функция printArea, которую вы только что написали, выводит площадь, и всё. А что, если мы хотим продолжить вычисления с результатом, например сложить площади всех комнат в квартире? Выведенное значение просто показано в консоли; программа больше не может с ним работать.
Поэтому функции могут возвращать значение. Ключевое слово return отправляет значение обратно туда, откуда функцию вызвали:
function add(a, b) {
return a + b;
}
const sum = add(2, 3);
console.log(sum);Это выведет:
5Вызов add(2, 3) запускает функцию, и функция возвращает 5. Можно представить, что JavaScript заменяет вызов значением, которое вернула функция, так что const sum = add(2, 3); превращается в const sum = 5;. Значение, которое возвращает функция, называется её возвращаемым значением.
Вызов можно использовать везде, где можно написать значение: сразу вывести его или вычислять с ним:
function add(a, b) {
return a + b;
}
console.log(add(2, 3));
const total = add(2, 3) * 2;
console.log(total);Это выведет:
5
10В console.log(add(2, 3)) JavaScript сначала вызывает add(2, 3), а затем выводит 5, которое вернула функция. В add(2, 3) * 2 вызов превращается в 5, а 5 * 2 — это 10.
Новички часто путают return и console.log. console.log лишь показывает значение вам, в консоли. return передаёт значение программе, которая может сохранить его, вычислять с ним или вывести. Посмотрите, что происходит, когда функция выводит результат вместо того, чтобы вернуть его:
function printSum(a, b) {
console.log(a + b);
}
const result = printSum(2, 3);
console.log(result);Это выведет:
5
undefined5 вывел console.log внутри функции. Но функция ничего не вернула, а функция без return возвращает undefined. Поэтому result — это undefined. Вот почему большинство функций возвращают свой результат, а код, который их вызывает, сам решает, что с ним делать.
Задание
- 1
Допишите функцию
rectangleAreaтак, чтобы она возвращалаwidth * height. Тогда программа выведетКухня: 12иСпальня: 20. - 2
В квартире есть ещё гостиная размером 6 × 5 м. Создайте переменную
livingRoomс её площадью, вычисленной функциейrectangleArea. Затем выведите площадь всей квартиры,kitchen + bedroom + livingRoom, с подписью"Вся квартира:". Должно получиться62.