Предположим, у меня есть такой цикл:
for (var i = 0; i < SomeArrayOfObject.length; i++) {
if (SomeArray[i].SomeValue === SomeCondition) {
var SomeVar = SomeArray[i].SomeProperty;
return SomeVar;
}
}
Быстрый вопрос: return
останавливает ли выполнение цикла само по себе?
javascript
loops
return
Frenchie
источник
источник
return
по-прежнему возвращается из текущей итерации обратного вызова функции в своей области видимости, но не ожидается, что она будет прерываться из всего вызывающего методаforEach()
. Таким образом, он не возвращается из самого цикла , но он возвращается из обратного вызова, который выполняет цикл. В примере кода из связанного вопроса выходные данные1,2,4,5
пропускаются3
из-за возврата.return
всегда будет возвращаться из текущегоthis
контекста.break
и тогдаreturn
.В большинстве случаев (в том числе этот),
return
выход немедленно. Однако, если возврат находится вtry
блоке с сопровождающимfinally
блоком,finally
всегда выполняется и может «переопределить»return
вtry
.источник
return
Оператор останавливает цикл , только если он находится внутри функции. В противном случае вы получите эту ошибку:источник
Этот код выйдет из цикла после первой итерации в
for of
цикле:код ниже перейдет к условию и продолжит
for of
цикл:источник
Да, после выполнения
return
оператора вся функция завершается в этот же момент.Только представьте, что произойдет, если этого не произойдет, и вы продолжите цикл и выполняете это
return
утверждение каждый раз? Это бы лишило законной силы возвращать значение, когда вы об этом думаете.источник
Ответ - да, если вы напишете оператор return, элементы управления немедленно возвращаются к методу вызывающего. За исключением блока finally, который выполняется после оператора return.
И, наконец, может также переопределить возвращенное вами значение, если вы вернетесь внутрь блока finally. ССЫЛКА: Попробуй-пойми-наконец-то вернись
Вернуть определение оператора согласно:
Документы Java:
Документация MSDN:
Википедия:
источник
«return» действительно завершает функцию, но если вы хотите вернуть большие суммы данных, вы можете сохранить их в массиве, а затем вернуть вместо того, чтобы пытаться вернуть каждый фрагмент данных 1 на 1 в цикле.
источник