20201002 TIL for Loop, while Loop


JavaScriptでは、各elの新しいオブジェクトに複数の関数を返したり適用したりするために、繰り返し可能なオブジェクト(Array、Object)を繰り返します.
今日はそんな「リピート」のJavaScript方法について勉強します.

佳作の代表的な複文にはforとwhileがある.

🪀 for Loop指定回数を繰り返す


for(初期化;条件式;終了式){実行する条件};
for ( let i=0; i<5 ; i++) { console.log(i) } ;

- for in


for ( let i in obj ){ };
for in文は主にオブジェクトのループに使用されます.
繰り返し回数はkey-value pairの個数と同じです.
iオブジェクトのキー値があり、obj[i]からアクセスできます.
for inはArrayでも使用できますが、配列のelではなく「インデックス」にアクセスします.
const arr = ["hello","weCode","hello","World"];
for(let i in arr){ console.log(i) };
// "0","1","2","3"
そのため、Arrayは使用しないことをお勧めします.

- for of


for ( let i in arr ){ };
for inがkey値に近づくと、forが逆にvalueに近づくといいです.
繰り返し回数はarrのel個数と同じである.(=arr.length)
Inとは異なり、for forはArrayでのみ使用でき、Objectでは使用できません.
forをオブジェクトに適用します.
「UncauthtType Error:objはiterableではありません」などのエラーメッセージが表示されます.

🪀 無限反復while Loop(条件による)


while(条件式){実行文};
while(true){alert("ああ");};
本当に無限のアラームがパソコンが死ぬかもしれないから、これを試してはいけない.

while文は、まず条件式の条件をチェックし、=>Bodyの実行文を実行します.
条件がtrueの場合、文の実行を繰り返し、条件がfalseの場合、whileは文の終了を終了します.

- do while


dowhileにも条件式とBodyの実行文があります.
また、条件が同じ場合、trueで1日連続して文を繰り返し、結果条件がfalseの場合、while文を終了します.
しかしwhileとdo whileには明らかな差がある.
「まず実行してから条件を見る」と「まず条件を見てから実行する」の違いです.

上記のフローチャートから見ると、whileは条件を確認した後にbodyの実行文を実行し、dowhileはまずbodyの実行文を実行し、その後条件を確認して、以降の実行が継続するかどうかを確認する.
参考資料
https://stackoverflow.com/questions/11789901/what-is-the-different-between-for-loop-and-for-in-loop-in-javascript
https://thecodebarbarian.com/for-vs-for-each-vs-for-in-vs-for-of-in-javascript
https://n-log.tistory.com/39
https://www.quora.com/What-is-the-difference-between-while-loop-and-for-loop-What-is-an-example-of-this
https://webclub.tistory.com/166