Q1. 基本の判定と文字列
次のif文は極めて基本の判定です。 通常、このような書き方はしませんが、わかりやすく書いてみました。if(true){
console.log("True")
}
else{
console.log("False")
}
> True
if(false){
console.log("False")
}
else{
console.log("True")
}
> False
わかりやすいですよね?
では次の場合はどうなるでしょう?
if("false"){
console.log("False")
}
else{
console.log("True")
}
答えを見る
> True "False"は、ブーリアンではなく、クォーテーションで囲まれているので、文字列になっているので、if文では、true扱いになる。
Q2. 比較判定
ブーリアンの判定は、比較演算子による判定がよく使われます。if(1 == 1){
console.log("True")
}
else{
console.log("False")
}
> True
それでは、次の場合はどうでしょう?
if(1 == "1"){
console.log("True")
}
else{
console.log("False")
}
答えを見る
> True 数値と文字列なので、同じじゃないからtrueにはならないと思ったけど、結果は"True" これは、Javascriptの比較演算では、==という判定は、変数の型を判定しないという特性があり、1も"1"も同じ1という判定が行われてしまいます。 型のチェックも同時に行いたい場合は、===(3つ)の演算子を使います。
Q3. 論理演算
複雑なif文になると、比較演算を複数同時に行います。 次の場合は、AND演算子(&&)が使われていて、trueとtrueのどちらもtrueの場合に、if文は、trueの判定を行います。if(1 === 1 && 2 === 2){
console.log("True")
}
else{
console.log("False")
}
> True
反対にOR演算子(||)を使うと、どちらか一方がtrueの場合の判定が使えます。
if(1 === 1 || 1 === 2){
console.log("True")
}
else{
console.log("False")
}
> True
では、次の場合のif文は、どんな結果になるでしょう?
if(1 === 1 || 1 === 2 && 1 === 3){
console.log("True")
}
else{
console.log("False")
}
答えを見る
> True ||と&&が混在すると、if文は非常に複雑に見えてきます。 この問題は、最初の1 === 1がtrueの判定で、それ以降の判定はfalseでも意味がなくなるので、Trueが返されますが、通常はこういう複雑な書き方をしてはいけません。 if文内の条件を、一度文章にしてちゃんと説明できる内容にしてみると、比較的安定したif文が書ける様になりますよ。
0 件のコメント:
コメントを投稿