Оператор 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' в этой спецификации. |
Живой стандарт |
Совместимость с браузерами
BCD tables only load in the browser