JavaScriptの基本-2

参考書籍 : JavaScript本格入門


・制御構文
1, if命令
条件式の真偽で処理を分岐する

var x = 15;
if (x >= 20) {
    console.log('20以上');
} else if (x >= 10) {
    console.log('10以上');
} else {
    console.log('10未満');
}

 
2, switch命令
式の値で処理を分岐する

var rank = 'B';
switch (rank) {
    case 'A':
        console.log('A rank');
        break;
    case 'B':
        console.log('B rank');
        break;
    case 'C':
        console.log('C rank');
        break;
    default:
        console.log('no rank');
        break;
}

switchの式とcaseの値は===で比較されるため、switch('0')はcase 0:の処理を行わない。

3, while/do...while命令
条件式が真である間、ループする。

var x = 8;
while (x < 10) {
    console.log('xの値は' + x);
    x++;
}

var x = 8
do {
    console.log('xの値は' + x);
    x++;
} while (x < 10)

do...while命令では真偽に関わらず1度は処理が実行される。

4, for命令
指定された回数だけ処理を繰り返す。

for (var i = 0; i < 5; i++) {
    console.log('iの値は' + i);
}

for(;;)のように式を省略できる。
省略した場合の条件式は常に真となり、forから抜ける手段がなければ無限ループになる。

5, for...in命令
連想配列(オブジェクト)のキーを変数に取り出して、連想配列の要素を順に処理する。

var data = { apple: 150, orange: 100, banana: 120 };
for (var key in data) {
    console.log(key + ' = ' + data[key]);
}

for...in命令は配列には用いない。
得られるキーはインデックスであり、for...inを用いる必要がなく、またfor...inでは処理の順序が保証されない。

6, for...of命令
配列などを順番に処理する。ES2015で追加された。

var data = ['apple', 'orange', 'banana'];
for (var value of data) {
    console.log(value);
}

仮変数に値が渡される点で、for...inと異なる。

7, break命令/continue命令/ラベル構文
breakでループから抜け出せる。
continueは、現在のループだけをスキップして次のループを実行する。
ラベル構文を使えば、ネストされたループを抜け出せる。例えば、積が30を超えたとき九九のループを抜ける場合は、

kuku:
for (var i = 1; i < 10; i++) {
    for (var j = 1; j < 10; j++) {
        var k = i * j;
        if (k > 30) break kuku;
        document.write(k + '&nbsp');
    }
    document.write('<br />');
}

のように、脱出先のループの先頭にラベルを指定する。

8, try...catch...finally命令/throw命令
例外を処理する。
try内に例外が発生する可能性のある処理を書き、catchで例外を受け取ったときの処理を、
finallyに例外の有無に関わらず、最終的に実行される処理を書く。

try {
    undefinedVar * 100;
} catch (e) {
    console.log(e.message); // undefinedVar is not defined
} finally {
    console.log('例外処理は終了しました');
}

throw命令で例外を発生させることができる。

throw new Error('message');

9, Strictモード
スクリプトの先頭に'use strict';と記述することで、JavaScriptの非推薦な構文をエラーにすることができる。