Как использовать return в JavaScript?

169
02 августа 2018, 10:50

Расскажите мне про функцию return как для ребёнка, я не могу понять как её использовать в JavaScript.

Answer 1
  1. Это не функция, а конструкция языка.
  2. Функция в JS обязана что-то вернуть. Даже без return будет возвращено undefined.
    А если нужно вернуть что-то осмысленное, то с помощью этого оператора можно это реализовать, сказав интерпретатору что именно надо вернуть.

Примеры:

// Производим вычисления без returb 
function withoutReturn (a, b) { 
  // Результат есть, но т. к. это внутренняя переменная и её не возвращают - результат умирает с ней 
  // Можно установить его во внешнюю переменную, но это фу, не надо такими быть, держите функции чистыми 
  let c = a + b; 
   
  // Вот это может быть тут, правда это процедура, а не функция 
  document.querySelector('#test').innerHTML = "Test"; 
} 
 
function withReturn (a, b) { 
  let c = a + b; 
   
  // Здесь мы что-то сделали и отдаём результат, т. е. смысл как функции присутствует 
  return c; 
} 
 
// undefined - ожидали сложения, которое произошло, но ничего не вернулось (т. е. автоматически вернулся маркер неустановленности) 
console.info(withoutReturn(5, 5)); 
 
// 10 - сложили и вернули, то, что надо 
console.info(withReturn(5, 5));
<span id='test'></span>

Answer 2

У оператора return два назначения.

Во-первых, - это немедленный выход из функции. Т.е. оператор передаёт управление коду, вызвавшему текущую функцию.

Пример:

function twice(a){
  if (isNaN(a)) return; // Условный выход без результата(c undefined)
  return 2*a;           // Выход с нужным результатом
  a += 5;               // Код после вызова return не может быть выполнен
}

Вообще говоря, выход из функции может быть осуществлён несколькими способами:

  • Достижение последнего оператора (код функции попросту заканчивается, аналогично return; или return undefined;)
  • Непосредственный вызов оператора return
  • Выбрасывание ошибки, исключения (throw 'something', throw new Error('Ошибка')) В этом случае производится "разворачивание стека", мы опускаемся по стеку вызовов, пока не встретим обработчик исключений (конструкцию try{}catch(e){})

Во-вторых, - это возврат значения, так называемого "результата функции".

Пример:

function max(a, b) {
  if (a > b) return a; // Условный выход с результатом a
  return b;            // Безусловный выход с результатом b
}

PS: На самом деле, всё это относится ко многим языкам программирования, не только javascript.

READ ALSO
Не срабатывает условие в скрипте

Не срабатывает условие в скрипте

При изменении значения location в заданном диапазоне, требуется выполнить условие, нo условие не срабатываетЗначение location - это бегунок JQuery UI

150
На главной отображать, на всех остальных скрыть!

На главной отображать, на всех остальных скрыть!

Ребята, подскажите каким образом сайд бар отображать на главной странице, а когда переходишь на товар или другую страницу что бы он прятался!?

128
Поиск набора слов в строке

Поиск набора слов в строке

Делаю фильтр сообщений в боте ТелеграмСтолкнулся с такой проблемой

123
Повесить картинку на кнопку

Повесить картинку на кнопку

Как можно повесить картинку на кнопку?

171