邏輯運算子

 

邏輯運算子

邏輯運算子通常和布林(邏輯)值一起使用,並返回布林值。然而,&& 和 || 運算子實際上返回的是指定的運算元的其中一個的值,所以如果這些運算子與非布林值一起使用,有可能返回非布林值。邏輯運算子的說明如下表。

運算子 用法 說明
&& 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 部分並未求值,因此所有未求值的部分都不會產生作用。

文件標籤與貢獻者

 此頁面的貢獻者: teoli, happysadman
 最近更新: teoli,