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

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

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

BCD tables only load in the browser

Див. також