Core JavaScript 1.5 Guide:Operators:Logical Operators
出典: MDC
[編集] 論理演算子
論理演算子では基本的に真偽(論理)値を用います。そのような値があると真偽値を返します。しかし、&& および || 演算子は実際には指定されたオペランドの一方の値を返します。そのため、非真偽値とともに論理演算子が使われると非真偽値を返します。論理演算子について次の表で説明します。
| 演算子 | 使用法 | 説明 |
|---|---|---|
| && | expr1 && expr2 | (論理 AND)expr1 を false と見ることができる場合は expr1 を返す。そうでない場合は expr2 を返す。したがって、真偽値が使われた場合、両オペランドが true の場合は && は true を返し、そうでない場合は false を返す。 |
| || | expr1 || expr2 | (論理 OR)expr1 を true と見ることができる場合は expr1 を返す。そうでない場合は expr2 を返す。したがって、真偽値が使われた場合、どちらかのオペランドが true の場合は || は true を返し、両方とも false の場合は false を返す。 |
| ! | !expr | (論理 NOT)オペランドを true と見ることができる場合は false を返す。そうでない場合は true を返す。 |
表 3.7:論理演算子
false と見ることができる式とは、null、0、空文字列 ("")、または undefined に評価される式のことです。
以下のコードで &&(論理 AND)演算子の例を示します。
a1=true && true // t && t は true を返す a2=true && false // t && f は false を返す a3=false && true // f && t は false を返す a4=false && (3 == 4) // f && f は false を返す a5="Cat" && "Dog" // t && t は Dog を返す a6=false && "Cat" // f && t は false を返す a7="Cat" && false // t && f は false を返す
以下のコードで ||(論理 OR)演算子の例を示します。
o1=true || true // t || t は true を返す o2=false || true // f || t は true を返す o3=true || false // t || f は true を返す o4=false || (3 == 4) // f || f は false を返す o5="Cat" || "Dog" // t || t は Cat を返す o6=false || "Cat" // f || t は Cat を返す o7="Cat" || false // t || f は Cat を返す
以下のコードで !(論理 NOT)演算子の例を示します。
n1=!true // !t は false を返す n2=!false // !f は true を返す n3=!"Cat" // !t は false を返す
[編集] ショートサーキット評価
論理式は左から右に評価されるため、以下のルールを用いることで「ショートサーキット」評価ができるようになっています。
-
false&& anything は false にショートサーキット評価する。 -
true|| anything は true ショートサーキット評価する。
論理のルールはこれらの評価が常に正確であることを保証しています。上記の式の anything の部分は評価されないため、何らかの副作用が生じないように注意してください。