return

Оператор return завершает выполнение текущей функции и возвращает её значение.

Синтаксис

return [[выражение]]; 
выражение
Выражение, значение которого будет возвращено. Если не указано, вместо него возвращается undefined.

Описание

При вызове оператора return в функции её выполнение прекращается. Указанное значение возвращается в место вызова функции. Например, приведённая ниже функция возвращает возведённое в квадрат значение своего аргумента, x (где x – это число):

function square(x) {
   return x * x;
}
var demo = square(3);
// значение demo будет равняться 9

Если возвращаемое значение не указано, вместо него возвращается undefined.

Следующие выражения всегда прерывают выполнение функции:

return;
return true;
return false;
return x;
return x + y / 3;

Автоматическая расстановка точек с запятыми

На выражение return влияет автоматическая расстановка точек с запятыми (ASI). Разрыв строки не допускается между ключевым словом return и выражением.

return
a + b;

трансформируется ASI в:

return;
a + b;

В консоли появится предупреждение "unreachable code after return statement".

Начиная с Gecko 40 (Firefox 40 / Thunderbird 40 / SeaMonkey 2.37), предупреждение в консоли появляется, если обнаружен недостижимый код после return.

Для того, чтобы избежать данной проблемы (предотвратить ASI), можно использовать скобки:

return (
  a + b;
);

Примеры

Прерывание функции

Функция немедленно останавливается в точке, где вызывается return.

function counter() {
  for (var count = 1; ; count++) {  // бесконечный цикл
    console.log(count + "A"); // до 5
      if (count === 5) {
        return;
      }
      console.log(count + "B");  // до 4
    }
  console.log(count + "C");  // никогда не появляется
}

counter();

// Выводит:
// 1A
// 1B
// 2A
// 2B
// 3A
// 3B
// 4A
// 4B
// 5A

Возвращение функции

Смотрите также статью о замыканиях.

function magic(x) {
  return function calc(x) { return x * 42 };
}

var answer = magic();
answer(1337); // 56154

Спецификации

Спецификация Статус Комментарий
ECMAScript 1st Edition (ECMA-262) Стандарт Изначальное определение
ECMAScript 5.1 (ECMA-262)
Определение 'Return statement' в этой спецификации.
Стандарт
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Return statement' в этой спецификации.
Стандарт
ECMAScript (ECMA-262)
Определение 'Return statement' в этой спецификации.
Живой стандарт

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также