Supposons que j'ai une boucle comme celle-ci:
for (var i = 0; i < SomeArrayOfObject.length; i++) {
if (SomeArray[i].SomeValue === SomeCondition) {
var SomeVar = SomeArray[i].SomeProperty;
return SomeVar;
}
}
Question rapide: l' return
arrêt de l'exécution de la boucle en soi?
javascript
loops
return
frenchie
la source
la source
return
retourne toujours de l'itération actuelle du rappel de fonction, dans sa propre portée, mais on ne s'attend pas à ce qu'il rompe avec toute la méthode d'appelforEach()
. Donc, il ne revient pas de la boucle elle - même , mais il revient du rappel que la boucle exécute. Dans l'exemple de code de la question liée, la sortie1,2,4,5
ignore le à3
cause du retour.return
reviendra toujours duthis
contexte actuel .break
et ensuitereturn
.Dans la plupart des cas (y compris celui-ci), se
return
terminera immédiatement. Cependant, si le retour est dans untry
bloc avec unfinally
bloc qui l' accompagne , lefinally
s'exécute toujours et peut "écraser" lereturn
dans letry
.la source
L'
return
instruction arrête une boucle uniquement si elle se trouve à l'intérieur de la fonction. Sinon, vous obtiendrez cette erreur:la source
Ce code quittera la boucle après la première itération d'une
for of
boucle:le code ci-dessous sautera sur la condition et continuera sur une
for of
boucle:la source
Oui, une fois l'
return
instruction exécutée, la fonction entière est quittée à ce point précis.Imaginez ce qui se passerait si ce n'était pas le cas et continuait à boucler et à exécuter cette
return
instruction à chaque fois? Cela invaliderait son sens de renvoyer une valeur lorsque vous y réfléchissez.la source
La réponse est oui, si vous écrivez une instruction return, les contrôles reviennent immédiatement à la méthode appelante. À l'exception du bloc finally, qui est exécuté après l'instruction return.
et enfin peut également remplacer la valeur que vous avez retournée, si vous retournez à l'intérieur du bloc finally. LIEN: clarification Try-catch-finally-return
Définition de la déclaration de retour selon:
Documents Java:
Documentation MSDN:
Wikipédia:
la source
"return" quitte la fonction mais si vous voulez renvoyer de grandes sommes de données, vous pouvez les stocker dans un tableau puis les renvoyer au lieu d'essayer de renvoyer chaque élément de données 1 par 1 dans la boucle.
la source