return

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

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

Интерактивный пример

function getRectArea(width, height) {
  if (width > 0 && height > 0) {
    return width * height;
  }
  return 0;
}

console.log(getRectArea(3, 4));
// Expected output: 12

console.log(getRectArea(-3, 4));
// Expected output: 0

Синтаксис

return [[выражение]];
выражение

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

Описание

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

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

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

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

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

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

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

js
return
a + b;

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

js
return;
a + b;

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

Примечание: Начиная с Gecko 40, предупреждение в консоли появляется, если обнаружен недостижимый код после return.

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

js
return (
  a + b;
);

Примеры

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

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

js
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

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

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

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

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

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

Specification
ECMAScript® 2025 Language Specification
# sec-return-statement

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

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
return

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

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