Spec-Zone.ru › JavaScript

return

Базовая поддержка Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 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;
return expression;
expression Необязательно
Выражение, значение которого должно быть возвращено. Если оно опущено, возвращается undefined.

Описание

Оператор return может использоваться только внутри тела функции. Когда оператор return используется в теле функции, выполнение функции останавливается. Оператор return имеет различное действие в зависимости от типа функции:

  • В обычной функции вызов этой функции возвращает возвращаемое значение.
  • В асинхронной функции созданный промис разрешается возвращаемым значением.
  • В функции-генераторе метод next() созданного объекта-генератора возвращает { done: true, value: returnedValue }.
  • В асинхронной функции-генераторе метод next() созданного асинхронного объекта-генератора возвращает промис, выполненный с { done: true, value: returnedValue }.

Если оператор return выполняется внутри блока try, то его блок finally, если он присутствует, выполняется сначала, прежде чем значение будет фактически возвращено.

Автоматическая вставка точки с запятой

Синтаксис запрещает символы окончания строки между ключевым словом return и выражением, которое должно быть возвращено.

return
a + b;

Приведённый выше код преобразуется посредством автоматической вставки точки с запятой (ASI) в:

return;
a + b;

Это приводит к тому, что функция возвращает undefined, а выражение a + b никогда не вычисляется. Это может вызвать предупреждение в консоли.

Чтобы избежать этой проблемы (предотвратить ASI), вы можете использовать скобки:

return (
  a + b
);

Примеры

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

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

function counter() {
  // Infinite loop
  for (let count = 1; ; count++) {
    console.log(`${count}A`); // Until 5
    if (count === 5) {
      return;
    }
    console.log(`${count}B`); // Until 4
  }
  console.log(`${count}C`); // Never appears
}

counter();

// Logs:
// 1A
// 1B
// 2A
// 2B
// 3A
// 3B
// 4A
// 4B
// 5A

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

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

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

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

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

Спецификация
Спецификация языка ECMAScript® 2027
# sec-return-statement

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

Десктопные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
return
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0

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

  • Функции
  • Замыкания

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API