return 会停止循环吗?

2022-01-19 00:00:00 return loops javascript

假设我有一个这样的循环:

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.

相关文章