return 会停止循环吗?
假设我有一个这样的循环:
Suppose I have a loop like this:
for (var i = 0; i < SomeArrayOfObject.length; i++) {
if (SomeArray[i].SomeValue === SomeCondition) {
var SomeVar = SomeArray[i].SomeProperty;
return SomeVar;
}
}
快速提问:return
本身会停止循环的执行吗?
Quick question: does the return
stop the execution of the loop in and of itself?
推荐答案
是的,return
停止执行并退出函数.return
always** 立即退出其函数,如果它在 for 循环中则不再执行.
Yes, return
stops execution and exits the function. return
always** exits its function immediately, with no further execution if it's inside a for loop.
很容易自己验证:
function returnMe() {
for (var i = 0; i < 2; i++) {
if (i === 1) return i;
}
}
console.log(returnMe());
** 注意:请参阅 this other answer 关于 try/catch/finally 的特殊情况code> 和 this answer 关于 forEach 循环如何它自己的函数范围不会脱离包含函数.
** Notes: See this other answer about the special case of try/catch/finally
and this answer about how forEach loops has its own function scope will not break out of the containing function.
相关文章