JavaScriptのreturnステートメントでネストされたループを抜ける方法
JavaScriptのreturnステートメントは、関数全体を即座に終了させる働きがあります。そのため、ネストされた(入れ子になった)ループの中でreturnを実行すると、内側のループだけでなく外側のループも含めてすべての処理が中断され、呼び出し元へ値が返されます。
サンプルコード
以下は、外側のループと内側のループを組み合わせた例です。変数outerが3になった時点でreturnステートメントが実行され、関数が終了します。
let demoForLoop = ()=>{
for(var outer=1;outer<100;outer++){
for(var inner=1;inner<=5;inner++){
if(outer==3){
return 'THE OUTER VALUE IS EQUAL TO 3 INSIDE THE LOOP';
}
}
}
return 'OUT OF THE LOOP';
}
console.log(demoForLoop());プログラムの実行方法
上記のプログラムを実行するには、ターミナルで次のコマンドを入力します。ここでは、ファイル名を「demo105.js」としています。
node demo105.js
出力結果
プログラムを実行すると、以下のような出力が得られます。
PS C:\Users\Amit\JavaScript-code> node demo105.js THE OUTER VALUE IS EQUAL TO 3 INSIDE THE LOOP
動作の解説
この例では、outer変数が3になった瞬間にif文の条件が真となり、returnステートメントが実行されます。returnが呼び出されると、内側のループだけでなく、それを囲んでいる外側のループごと関数全体の処理が終了するため、最後の「OUT OF THE LOOP」は実行されません。
breakステートメントが現在の1つのループしか脱出できないのに対し、returnは関数そのものから抜け出します。そのため、多重ループをまとめて終了させたい場面では、returnを使うのがシンプルかつ効果的な手法です。
-
JavaScriptにおける継承の基本を具体例で解説
JavaScriptは、クラスベースではなくプロトタイプベースのオブジェクト指向言語です。そのため、継承はprototype(プロトタイプ)オブジェクトを通じて実現されます。コンストラクタ関数のprototypeプロパティにメソッドやプロパティを追加すると、そのコンストラクタから生成されたすべてのインスタンスが、それらを共有して利用できるようになります。 プロトタイプによる継承の仕組み JavaScriptでは、インスタンスからプロパティやメソッドが参照されるとき、まずオブジェクト自身を検索し、見つからなければプロトタイプチェーンをたどって上位のオブジェクトへと探しに行きます。これにより、各イ
-
JavaScriptにおけるpreventDefault()とreturn falseの違いを徹底解説
preventDefault()とreturn falseの基本的な違いpreventDefault()は、イベントが発生した際にブラウザのデフォルト動作をキャンセルするメソッドです。例えば、リンクをクリックしたときのページ遷移を防ぎたい場合などに使用します。ただし、イベント自体の伝播(バブリング)は止められず、後続の処理も通常どおり実行されます。一方、return falseは、インラインのイベントハンドラやjQueryなどの環境で使われた場合、デフォルト動作を停止するだけでなく、イベントの伝播も阻止します。また、関数内でreturn falseに到達した時点でそれ以降の処理は実行されず、即