てきとうなメモ

本の感想とか技術メモとか

JavaScript入門 (3)

制御構造

JavaScriptの制御構造はほぼCやJavaの構文と同じ

if ... else
if (condition1) {
  statement1
}
else if (condition2) {
  statement2
}
else {
  statement3
}

conditionには比較演算子など真偽値を返すものを用いる.真偽値のリテラルはtrue
とfalseになっている.

js> if (x == 5) {
print("x is 5");
}
x is 5
js> x == 5
true

他のスクリプト言語と同じく,JavaScriptの比較演算子は文字列にも利用できる.

js> "JavaScript" > "Java"
false

Rubyと同じような===演算子もある

js> "5" == 5
true
js> "5" === 5
false
js> false != 0
false
js> false !== 0
true

'=='では型変換されて比較されるが,'==='や'!=='は型を含めて同じ物かどうかを比較している.

あと,論理演算子もあるがこれもCと同じである.

js> true && false
false
js> false || true
true
js> ! true       
false
for

forはCと同じだが()内で変数宣言できる.が,ブロック外部からも参照できるので気をつける

js> for (var i = 0; i < 5; i++) {
print("hoge");
}
hoge
hoge
hoge
hoge
hoge
js> i
4
while
do ... while

ここはCと同じなので省略する.ループに対する制御もbreakとcontinueで同じ.

switch

switch文もCと同じ文法だが文字列に対しても適用できるのが異なる

switch (str) {
case 'this':
  dothis();
  break;
case 'that':
  dothat();
  break;
default:
  dodefault();
  break;
}