hellojs.ru
Главная - Основы JavaScript - Про важность return

Про важность return

Размещено в категории "Основы JavaScript"
22.09.2024 / просмотров: 41 / комментариев: 0
Любая функция может что-то вернуть как результат своей работы. Эта функция вычисляет результат, но она его никуда не передаёт, а лишь выводит его в консоль
Код

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

Это всё равно, что если бы мы вызвали её так:
Код

promotion(14000);

Существует также практика помещения результата работы функции в промежуточную переменную, которую затем можно использовать в вызове другой функции:
Код

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;
}  
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
Сайт управляется системой uCoz