return

Оператор return завершує виконання функції та вказує значення, що буде повернене функцією.

Синтаксис

return [[expression]]; 
expression
Вираз, значення якого буде повернене. Якщо пропущений, повертається undefined.

Опис

Коли у тілі функції використовується оператор return, виконання функції зупиняється. За наявності, надане значення повертається у інструкцію, що викликала функцію. Наприклад, наступна функція повертає квадрат свого аргументу x, де x є числом.

function square(x) {
   return x * x;
}
var demo = square(3);
// demo дорівнюватиме 9

Якщо значення не вказане, повертається undefined.

Всі наведені оператори return переривають виконання функції:

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

Автоматична вставка крапки з комою

Оператор return підпадає під автоматичну вставку крапки з комою (ASI, automatic semicolon insertion). Символи кінця рядка недозволені між ключовим словом return та виразом.

return
a + b;

перетворюється у:

return; 
a + b;

Консоль виведе попередження "unreachable code after return statement" (недосяжний код після оператора return).

Починаючи з 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() {
  return function calc(x) { return x * 42; };
}

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

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

Специфікація Статус Коментар
ECMAScript 1st Edition (ECMA-262) Standard Початкове визначення.
ECMAScript 5.1 (ECMA-262)
The definition of 'Return statement' in that specification.
Standard
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Return statement' in that specification.
Standard
ECMAScript Latest Draft (ECMA-262)
The definition of 'Return statement' in that specification.
Draft

Сумісність з веб-переглядачами

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
returnChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support YesSafari Full support YesWebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 1.0nodejs Full support Yes

Legend

Full support  
Full support

Див. також