Оператор return завершает выполнение текущей функции и возвращает её значение.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Исходный код данного интерактивного примера хранится в репозитории на GitHub. Если вы хотите поучаствовать в проекте интерактивных примеров, пожалуйства, склонируйте https://github.com/mdn/interactive-examples и отправьте нам запрос на включение ваших изменений.
Синтаксис
return [[выражение]];
выражение- Выражение, значение которого будет возвращено. Если не указано, вместо него возвращается
undefined.
Описание
При вызове оператора return в функции её выполнение прекращается. Указанное значение возвращается в место вызова функции. Например, приведенная ниже функция возвращает возведенное в квадрат значение своего аргумента, x (где x – это число):
function square(x) {
return x * x;
}
var demo = square(3);
// значение demo будет равняться 9
Если возвращаемое значение не указано, вместо него возращается 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".
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(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' в этой спецификации. |
Стандарт | |
| ECMAScript (ECMA-262) Определение 'Return statement' в этой спецификации. |
Живой стандарт |
Совместимость с браузерами
BCD tables only load in the browser