MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

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

Синтаксис

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

Описание

При вызове оператора return в функции, выполнение этой функции прекращается. Указанное значение возвращается вызывателю функции. Если не указано, возращается 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.

Примеры

return

Данная функция возвращает квадрат аргумента x, где x - число.

function square(x) {
   return x * x;
}

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

Функция немедленно останавливается в точке, где вызывается 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' в этой спецификации.
Стандарт  

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

Возможность Chrome Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка (Да) (Да) (Да) (Да) (Да)
Возможность Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка (Да) (Да) (Да) (Да) (Да) (Да)

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

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

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