Любая функция может что-то вернуть как результат своей работы. Эта функция вычисляет результат, но она его никуда не передаёт, а лишь выводит его в консоль
Код
const usdCurr = 28;
const eurCurr = 32;
function convert(amount, curr) {
console.log(curr * amount);
}
convert(500, usdCurr); // 14000
convert(500, eurCurr); // 16000
Добавим вторую функцию, которая будет рассчитывать входящую сумму с учётом какой-то скидки
Код
const discount = 0.9;
function promotion(result) {
console.log(result * discount);
}
Теперь нам нужно полученное значение из функции
convert передать в вызов функции
promotion.
В этом нам поможет
return Код
const usdCurr = 28;
const discount = 0.9;
function convert(amount, curr) {
return curr * amount;
}
function promotion(result) {
console.log(result * discount);
}
promotion(convert(500, usdCurr));
Теперь мы в вызов функции
promotion передаём результат работы функции
convert, который она вернёт благодаря
return Это всё равно, что если бы мы вызвали её так:
Существует также практика помещения результата работы функции в промежуточную переменную, которую затем можно использовать в вызове другой функции:
Код
const res = convert(500, usdCurr); // в эту переменную вернется результат работы функции
promotion(res); // используем его в вызове уже этой функции
Цитата
С помощью ключевого слова return можно вернуть число, объект, массив, какую-то другую функцию итд.
Ключевое слово
return можно использовать и без значения, в примере ниже, как только переменная-итератор примет значение, равное 3, цикл и вся функция завершат работу
Код
function test() {
for (let i = 0; i < 5; i++) {
console.log(i);
if (i === 3) return; // цикл и функция завершают работу, возвращается undefined
}
console.log('Done'); // не выведется, так как находится после return
}
test(); // 0 1 2 3
Как видно, в консоли нет числа 4, это значит, что цикл прекратил свою работу. Также в консоли мы не видим строки "
Done", что говорит о том, что функция также прекратила свою работу, как только сработало условие
if (i === 3) в цикле
Любая функция что-то возвращает, даже если вы не используете слово
return, все равно вернётся
undefined. Функция ниже ничего не делает, но возвращает что-то и это что-то равно
undefined Код
function doNothing() {
};
console.log(doNothing() === undefined); // true
По этой же причине очень часто в консоли браузера мы видим помимо результата еще выводится
undefined, например, когда используем
console.log(), потому что это функция, не имеющая в себе
return и она возвращает
undefined Никогда после ключевого слова
return не ставить перенос строки, поскольку javascript автоматически добавляет точку с запятой и первоначальный код ломается
Код
function convert(amount, curr) {
return // здесь автоматически добавится точка с запятой
curr * amount;
}
Добавлять комментарии могут только зарегистрированные пользователи.