はじめに
以下のサイトを使用し、javascriptを学習しています。
現代の JavaScript チュートリアル
以下、備忘録として残します。
用語
イテレーション
- ループ本体1回の実行のこと
whileとfor
whileループ
- condition が true の間、ループの本体の code が実行される
- 下のループは i < 3 の間、i を出力する
let i = 0; while (i < 3) { // 0, 次に 1, 次に 2 を表示 alert( i ); i++; } //ループは3回イテレーション //i++がない場合永遠に繰り返される
forループ
- 下のループは 0 から 3 までalertを実行する
for (let i = 0; i < 3; i++) { // 0, 次に 1, 次に 2 を表示 alert(i); }
forループの動き
begin
(i = 0) ループに入ると1度実行されるcondition
(i < 3) すべてのループのイテレーションの前にチェックされる、もしも false の場合ループを停止step
(i++) 各イテレーションで、条件チェックの前に本体の後に実行されるbody
(alert(i)) 条件が真の間繰り返し実行されるループ処理のアルゴリズム(とても分かりやすい考え方)
begin を実行 → (if condition → body を実行し step を実行) → (if condition → body を実行し step を実行) → (if condition → body を実行し step を実行)
インライン変数宣言
- ループの中だけで使える変数
for (let i = 0; i < 3; i++) { alert(i); // 0, 1, 2 } alert(i); // エラー, そのような変数はありません
- ループの外で変数宣言していれば、ループ外からでも使える
let i = 0; for (i = 0; i < 3; i++) { // 既存の変数を使用 alert(i); // 0, 1, 2 } alert(i); // 3, ループの外で宣言されているので使える
省略もできる、書き方
- beginを省略
let i = 0; // すでに i を宣言し代入済み for (; i < 3; i++) { // "begin" 不要 alert( i ); // 0, 1, 2 }
- stepを省略
let i = 0; for (; i < 3;) { alert( i++ ); }
break(ループを終わらせる)
通常ループは条件が偽になると停止するが、breakディレクティブでループから出ることを強制できる
let sum = 0; while (true) { let value = +prompt("Enter a number", ''); if (!value) break; // sum += value; } alert( 'Sum: ' + sum );