逻辑运算符

 2024-01-12 02:01:18  阅读 0

概括

逻辑运算符通常用于(逻辑)值; 在这种情况下,它们返回一个布尔值。 然而, && 和 || 运算符实际上返回指定操作数的值,因此这些运算符也与非布尔类型一起使用,并且它们返回非布尔值。

描述

下面是逻辑运算符的说明:

算子示例说明

逻辑与 (&&)

表达式1 && 表达式2

如果expr1可以转换为false,则返回expr1,否则返回expr2。 因此,在环境中使用时,两个操作结果都为true时返回true,否则返回false。

逻辑或 (||)

表达式1 || 表达式2

如果expr1可以转换为true,则返回expr1,否则返回expr2。 因此,在环境中使用时(if的条件判断中),只要两个运算结果之一为true,就会返回true; 两个操作的结果均为 false,则返回 false。

逻辑否定(!)

!expr

如果单个表达式可以转换为 true,则返回 false,否则返回 true。

可以转换为 false 的表达式包括:null、0、"" 和 。

虽然 && 和 || 运算符可以在上下文之外使用,如果它们的返回值可以转换为值,则它们被视为操作。

短路计算

由于逻辑表达式的运算顺序是从左到右,因此还可以使用以下规则来进行“短路”计算:

该规则确保了这些计算的准确性。 请注意,如果上面表达式中的部分无法计算,则两边都不会生效。 另请注意,上述表达式中的部分是任何单个逻辑表达式(中间的括号)。

下面示例代码中的两个函数是相同的。

function shortCircuitEvaluation() {
  doSomething() || doSomethingElse()
}
function equivalentEvaluation() {
  var flag = doSomething();
  if (!flag) {
    doSomethingElse();
  }
}

但由于 的存在,下面的表达式的结果是不同的。 右边括号括起来的运算成为一个独立的表达式。

false && true  || true      // 结果为 true
false && (true || true)     // 结果为 false

逻辑与 (&&)

以下代码是 &&(逻辑 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

逻辑或 (||)

下面的代码是 || 的示例 (逻辑或)运算符。

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

逻辑否定(!)

下面的代码是一个示例! (逻辑非)运算符。

n1=!true              // !t 结果为 false
n2=!false             // !f 结果为 true
n3=!"Cat"             // !t 结果为 false

转换规则将 AND 转换为 OR

以下操作涉及操作的混合:

bCondition1 && bCondition2

相当于:

!(!bCondition1 || !bCondition2)

将或转换为与

以下操作涉及操作的混合:

bCondition1 || bCondition2

相当于:

!(!bCondition1 && !bCondition2)

删除嵌套括号

由于逻辑表达式是从左到右计算的,因此通常可以根据以下规则删除括号。

删除嵌套的 AND

以下操作涉及操作的混合:

bCondition1 || (bCondition2 && bCondition3)

相当于:

bCondition1 || bCondition2 && bCondition3

删除嵌套的 OR

js运算符可以传递吗?_运算符+也可以用来连接字符串_运算符的运算对象

以下操作涉及操作的混合:

bCondition1 && (bCondition2 || bCondition3)

相当于:

!(!bCondition1 || !bCondition2 && !bCondition3)

规格规格状态说明

第一。

浏览器兼容性

(壁虎)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

适用于 (Gecko)IE

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

(是的)

向后兼容性:1.0 和 1.1 中的行为

&& 和 || 表达式的行为如下:

算子示例说明

&&

表达式1 && 表达式2

如果第一个表达式 (expr1) 可以转换为 false,则 && 运算将返回 false,而不是 expr1 的值。

||

表达式1 || 表达式2

如果第一个表达式 (expr1) 可以转换为 true,则 || 操作将返回 true 而不是 expr1 的值。

参考

标签: 运算 逻辑 表达式

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码