Оператор 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 Latest Draft (ECMA-262)
Определение 'Return statement' в этой спецификации.
Черновик  

Поддержка браузерами

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidEdge MobileFirefox для AndroidOpera для AndroidiOS SafariSamsung InternetNode.js
Базовая поддержкаChrome Полная поддержка ДаEdge Полная поддержка ДаFirefox Полная поддержка 1IE Полная поддержка ДаOpera Полная поддержка ДаSafari Полная поддержка ДаWebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 4Opera Android Полная поддержка ДаSafari iOS Полная поддержка ДаSamsung Internet Android Полная поддержка Даnodejs Полная поддержка Да

Легенда

Полная поддержка  
Полная поддержка

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

Метки документа и участники

Внесли вклад в эту страницу: KTatyana, Biosneakers, BychekRU, janemel, The-Raven
Обновлялась последний раз: KTatyana,