--- title: 邏輯運算子 slug: >- conflicting/Web/JavaScript/Guide/Expressions_and_Operators_351a6d9e4d31b32eff9762ef5deead93 translation_of: Web/JavaScript/Guide/Expressions_and_Operators translation_of_original: Web/JavaScript/Guide/Obsolete_Pages/Operators/Logical_Operators original_slug: Web/JavaScript/Obsolete_Pages/Obsolete_Pages/Obsolete_Pages/運算子/邏輯運算子 ---
邏輯運算子通常和布林(邏輯)值一起使用,並返回布林值。然而,&& 和 || 運算子實際上返回的是指定的運算元的其中一個的值,所以如果這些運算子與非布林值一起使用,有可能返回非布林值。邏輯運算子的說明如下表。
運算子 | 用法 | 說明 |
---|---|---|
&& | 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 部分並未求值,因此所有未求值的部分都不會產生作用。
{{ PreviousNext("Core_JavaScript_1.5_教學:運算子:位元運算子", "Core_JavaScript_1.5_教學:運算子:字串運算子") }}
{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Operators/Logical_Operators", "es": "es/Gu\u00eda_JavaScript_1.5/Operadores/Operadores_l\u00f3gicos", "fr": "fr/Guide_JavaScript_1.5/Op\u00e9rateurs/Op\u00e9rateurs_logiques", "ja": "ja/Core_JavaScript_1.5_Guide/Operators/Logical_Operators", "ko": "ko/Core_JavaScript_1.5_Guide/Operators/Logical_Operators", "pl": "pl/Przewodnik_po_j\u0119zyku_JavaScript_1.5/Operatory/Operatory_logiczne" } ) }}