条件分岐
ある式を評価して、それが真となればこの処理。偽となればこちらの処理、といった条件分岐はプログラミングの最も基本的な操作といえます。
ここでは JavaScript の条件分岐を確認します。
真と評価される場合、偽と評価される場合をしっかり確認しておき、誤解の無いようにプログラミングしましょう。
if で条件分岐
他のプログラミング言語をご存知の型は馴染みがあると思いますが、条件分岐には if が使えます。
例えば二つの条件式によって分岐したい場合は、次のように書けます。
if( 条件式 1 ) {
// 条件式 1 が真のとき
}
else if( 条件式 2 ){
// 条件式 1 が偽で、条件式 2 が真のとき
}
else {
// それ以外のとき
}
この例では条件式は二つにしましたが、ひとつでも、あるいは三つ以上でも構いません。
例えば具体的には、条件式がひとつの場合、次のように書けます。
var i = 3;
if( i < 10 ) {
// i が 10 より小さい場合
}
else {
// それ以外の場合
}
真となる場合、偽となる場合
例えば、次の if 文の条件式を見てください。
i = 1;
if( i == 1 ) {
...
これが真 (true) となるのは、直感的にも当然のように思えますね。
それでは、次はどうでしょうか?条件式、というより、値を書いただけの場合です。
i = 0;
if( i ) {
...
実は、これは偽 (false) となります。
このように、値によっては真となったり、偽となるものが決まっているので注意が必要です。
特に気をつけたいポイントとしては次のようにまとめられます。
- null は false
- 空文字 '' は false
- undefined は false
- 数字の 0 は false (でも文字列で '0' となっていたら true!)
その他、コードを書く上で間違いやすいポイントとしては、等値演算子 (==) と等価演算子 (===) の使い間違いが挙げられます。
詳しくはそれぞれの説明で書きたいと思いますが、簡単に例を挙げると次のようになります。
var x = 1;
var y = '1';
if( x == y ) {
// x == y は true
if( x === y ) {
// x === y は false
この例では変数 x と変数 y にはそれぞれ数字の 1 と文字列の '1' が代入されています。
等値演算子 (==) で比較すると、数字の 1 と文字列の '1' は同じ値であるとされて true になります。一方、等価演算子 (===) で比較すると、数字の 1 と文字列の '1' は異なるものとされて false になります。
等価演算子では値だけでなく、型も等しくないとダメ、というわけです。
この点についてはまた別のページで詳しく取り上げたいと思います。