「JavaScript/制御構造」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
Ef3 (トーク | 投稿記録)
290 行
 
== for ==
'''[[w:文|for文]]'''(フォー文、''for statement'')は、いわゆる[[C言語/制御文#for文|C言語スタイルのfor文]]です。
let ''i'' = 0のような変数の初期化と、''i'' < 10のような条件式と、''i''++のような変数の更新を一行で書くことができる最も一般的かつ実用的な制御構文です。
JavaScriptではwhile文やdo-while文はあまり使われませんが、for文はループを簡潔に書けるので非常に重宝します。
次のプログラムは0から9までの数字を表示します。
 
<source lang="javascript">
298 ⟶ 301行目:
</source>
 
最初の式、let ''i'' = 0はループに入る前に一度だけ実行されます。
let ''i'' = 0はループに入る前に一度だけ実行されます。次に''i'' < 10がtrueならばブロックを実行し、''i''++を実行して再び条件式に戻ります。''i'' < 10がtrueである間、ブロックの実行と変数の更新が行われるということです。<!--- for文はかっこの中に3つの式を書ける強力な制御構文なので、他の構文はすべてfor文の特別な場合であるとも考えられます。
二番目の式、''i'' < 10がtruthyならばブロックを実行します。
たとえば、配列の要素を1つずつ取り出して処理をするような場合はfor文を使います。
三番目の式''i''++を実行して再び条件式に戻ります。
 
結果、''i'' < 10がtruthyである間、ブロックの実行と変数の更新が行われます。
JS にはイテレターオブジェクトがあるのでfor(;;)文で直接表現出来ない制御構造もある。また非同期関数も -->
 
<source lang="javascript">
310 ⟶ 314行目:
</source>
 
単文の場合はブロックを省くことが文は文の特殊なケースで単文でももちろん有効きます<ref>文 ⊇ ブロック文</ref>。
 
<source lang="javascript">
326 ⟶ 330行目:
</source>
 
このような書き方をして好み人読みにくだけですが、こち文意を汲むなの方が簡潔だという人もいるでしょう。...
<source lang="javascript">
[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ].forEach(x => console.log(x));
</source>
のような、iterableオブジェクト<ref>この場合は Array オブジェクト</ref>の[[JavaScript/イテレーションメソッド|イテレーションメソッド]]を使うことも検討に値します。
 
=== for 文の構文 ===
337 ⟶ 345行目:
** 文 を実行します
** 式3 を評価します
<!--スコープについて要加筆-->
 
== for-in ==