Оператор return завершает выполнение текущей функции и возвращает её значение.
Исходный код данного интерактивного примера хранится в репозитории на 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' в этой спецификации. |
Живой стандарт |
Совместимость с браузерами
| Компьютеры | Мобильные | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
return | Chrome Полная поддержка 1 | Edge Полная поддержка 12 | Firefox Полная поддержка 1 | IE Полная поддержка 3 | Opera Полная поддержка 3 | Safari Полная поддержка 1 | WebView Android Полная поддержка 1 | Chrome Android Полная поддержка 18 | Firefox Android Полная поддержка 4 | Opera Android Полная поддержка 10.1 | Safari iOS Полная поддержка 1 | Samsung Internet Android Полная поддержка 1.0 | nodejs Полная поддержка 0.1.100 |
Легенда
- Полная поддержка
- Полная поддержка