假设我有一个像这样的循环:
for (var i = 0; i < SomeArrayOfObject.length; i++) { if (SomeArray[i].SomeValue === SomeCondition) { var SomeVar = SomeArray[i].SomeProperty; return SomeVar; } }
快速提问:是否会return停止循环本身的执行?
return
是的,return停止执行并退出功能。returnalways**会立即退出其功能,如果它位于for循环中,则不会进一步执行。
它很容易为您自己验证:
function returnMe() { for (var i=0; i<2; i++) { if (i === 1) return i; } } alert(returnMe()); // 1
**注意:请参阅有关的特例的其他答案,try/catch/finally以及有关forEach循环如何具有自己的功能范围的答案,不会脱离包含函数。
try/catch/finally