return
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Оператор return завершает выполнение функции и определяет значение, которое должно быть возвращено вызывающей функции.
Попробуйте
function getRectArea(width, height) {
if (width > 0 && height > 0) {
return width * height;
}
return 0;
}
console.log(getRectArea(3, 4));
// Expected output: 12
console.log(getRectArea(-3, 4));
// Expected output: 0
Синтаксис
return; return expression;
-
expressionНеобязательно - Выражение, значение которого должно быть возвращено. Если оно опущено, возвращается
undefined.
Описание
Оператор return может использоваться только внутри тела функции. Когда оператор return используется в теле функции, выполнение функции останавливается. Оператор return имеет различное действие в зависимости от типа функции:
- В обычной функции вызов этой функции возвращает возвращаемое значение.
- В асинхронной функции созданный промис разрешается возвращаемым значением.
- В функции-генераторе метод
next()созданного объекта-генератора возвращает{ done: true, value: returnedValue }. - В асинхронной функции-генераторе метод
next()созданного асинхронного объекта-генератора возвращает промис, выполненный с{ done: true, value: returnedValue }.
Если оператор return выполняется внутри блока try, то его блок finally, если он присутствует, выполняется сначала, прежде чем значение будет фактически возвращено.
Автоматическая вставка точки с запятой
Синтаксис запрещает символы окончания строки между ключевым словом return и выражением, которое должно быть возвращено.
return a + b;
Приведённый выше код преобразуется посредством автоматической вставки точки с запятой (ASI) в:
return; a + b;
Это приводит к тому, что функция возвращает undefined, а выражение a + b никогда не вычисляется. Это может вызвать предупреждение в консоли.
Чтобы избежать этой проблемы (предотвратить ASI), вы можете использовать скобки:
return ( a + b );
Примеры
Прерывание функции
Функция немедленно останавливается в точке вызова return.
function counter() {
// Infinite loop
for (let count = 1; ; count++) {
console.log(`${count}A`); // Until 5
if (count === 5) {
return;
}
console.log(`${count}B`); // Until 4
}
console.log(`${count}C`); // Never appears
}
counter();
// Logs:
// 1A
// 1B
// 2A
// 2B
// 3A
// 3B
// 4A
// 4B
// 5A
Возвращение функции
Также смотрите статью о Замыканиях.
function magic() {
return function calc(x) {
return x * 42;
};
}
const answer = magic();
answer(1337); // 56154
Спецификации
Совместимость с браузерами
| Десктопные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
return |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
Смотрите также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return