次のようなループがあるとします。
for (var i = 0; i < SomeArrayOfObject.length; i++) {
  if (SomeArray[i].SomeValue === SomeCondition) {
     var SomeVar = SomeArray[i].SomeProperty;
     return SomeVar;
  }
}
簡単な質問: はreturnループの実行自体を停止しますか?
次のようなループがあるとします。
for (var i = 0; i < SomeArrayOfObject.length; i++) {
  if (SomeArray[i].SomeValue === SomeCondition) {
     var SomeVar = SomeArray[i].SomeProperty;
     return SomeVar;
  }
}
簡単な質問: はreturnループの実行自体を停止しますか?
はい、return実行を停止して関数を終了します。returnalways** はその関数をすぐに終了し、for ループ内にある場合はそれ以上実行しません。
自分で簡単に確認できます。
function returnMe() {
  for (var i = 0; i < 2; i++) {
    if (i === 1) return i;
  }
}
console.log(returnMe());
** 注:の特殊なケースについてはこの他の回答を参照してください。また、forEach ループに独自の関数スコープがあり、それを含む関数から抜け出せない方法についてはtry/catch/finally  、この回答を参照してください。
ほとんどの場合 (これを含む)、すぐreturnに終了します。ただし、戻り値がtry付随するブロックを含むブロック内にある場合finally、 は常に実行され、内のfinallyを「オーバーライド」できます。returntry
function foo() {
    try {
        for (var i = 0; i < 10; i++) {
            if (i % 3 == 0) {
                return i; // This executes once
            }
        }
    } finally {
        return 42; // But this still executes
    }
}
console.log(foo()); // Prints 42
    ステートメントはreturn、ループが関数内にある場合にのみループを停止します (つまり、ループと関数の両方を終了します)。そうしないと、次のエラーが発生します。
Uncaught SyntaxError: Illegal return statement(…)
ループを終了するには、 を使用する必要がありますbreak。
はい、returnステートメントが実行されると、その時点で関数全体が終了します。
returnそれが行われず、ループを続け、そのステートメントを毎回実行するとどうなるか想像してみてください。考えてみると、値を返すという意味が無効になります。
「return」は関数を終了しますが、大量のデータを返したい場合は、ループ内で各データを 1 つずつ返すのではなく、配列に格納してから返すことができます。