論理演算子 リダイレクト 2

概要

論理演算子 (Logical operators) は、基本的に真偽(論理)値とともに用いられます。そのときは、真偽値を返します。しかし、&& および || 演算子は、実際には、指定された演算対象の一方を返します。ですから、それらの演算子が、真偽値ではない値とともに用いられた場合、真偽値ではない値を返す可能性があります。

演算子
実装されたバージョン JavaScript 1.0
ECMA バージョン ECMA-262

論理演算子を以下の表で説明します。:

演算子 使用法 説明
論理 AND(&&) expr1 && expr2 expr1 を false と見ることができる場合は、expr1 を返します。そうでない場合は、expr2 を返します。したがって、真偽値と共に使われた場合、 演算対象の両方が true ならば、&& は、true を返し、そうでなければ、false を返します。
論理 OR (||) expr1 || expr2 expr1 を true と見ることができる場合は、expr1 を返します。そうでない場合は、expr2 を返します。したがって、真偽値と共に使われた場合、 演算対象のどちらかが true ならば、|| は、true を返し、両方とも false の場合は、false を返します。
論理 NOT (!) !expr 単一の演算対象が true と見ることができ場合は、false を返します。そうでない場合は、true を返します。

false と見ることができる式の例は、null、0、空文字列("")、あるいは、undefined と評価されるものです。

&&|| 演算子が真偽値ではない値である演算対象とともに用いることができても、それらは、真偽演算子と考えることができます。なぜなら、それらの戻り値は、常に、真偽値と見ることができるからです。

ショートサーキット評価

論理演算子は左から右へ評価されるため、以下の規則を用いることで「ショートサーキット」評価ができるようになっています。:

  • false && anything をショートサーキット評価すると、false になります。
  • true || anything をショートサーキット評価すると、true になります。

論理の規則はこれらの評価が常に正確であることを保証しています。上記の式の anything の部分は評価されないため、何らかの副作用が生じないように注意してください。

後方互換性

JavaScript 1.0 および 1.1

&& 及び || 演算子は、以下のように動作します。:

演算子 使用法 動作
&& expr1 && expr2 最初の演算対象 (expr1)を false と見ることができる場合、 && 演算子は、expr1 の値ではなく、false を返します。
|| expr1 || expr2 最初の演算対象 (expr1)を ture と見ることができる場合、 || 演算子は、expr1 の値ではなく、true を返します。

論理 AND (&&)

以下のコードは、&& (論理 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 (||)

以下のコードは、 || (論理 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 (!)

以下のコードは、! (論理 NOT) 演算子の例を示しています。

n1=!true              // !t false を返します。
n2=!false             // !f true を返します。
n3=!"Cat"             // !t false を返します。

ドキュメントのタグと貢献者

 このページの貢献者: ethertank
 最終更新者: ethertank,