反转布尔表达式
invert a boolean expression
本文关键字:布尔表达式 更新时间:2023-09-26
我有一些类似的代码
var a = returnsABoolean();
var b = returnsABoolean();
if (!a || !b) {
} else {
doStuff();
}
我该如何反转if语句中的测试,以便将其重写为
var a = returnsABoolean();
var b = returnsABoolean();
if (someExpression) {
doStuff();
}
换句话说,我应该用什么测试来替换someExpression
以保持现有的行为?
您需要应用德摩根定理。哪个州:
!A || !B == !(A && B)
因此,您的测试可以重写为:
if (a && b) {
doStuff();
}
为什么它有效
基本上,应用德摩根定理,你首先将你的陈述改写为:
if ( ! (a && b) ) {
} else {
doStuff();
}
由于我们现在想要反转!(a&&b)
,我们只需删除而不是:
if ( (a && b) ) {
doStuff();
}
De Morgan定律指出,可以将!a || !b
重写为!(a&&b)
这也适用于另一种方式:!a && !b
可以重写为!(a||b)
只需将条件的逻辑逆赋值给上一个作用域的"else"语句。
if( a && b ) {
doStuff();
}
相关文章:
- 布尔表达式-与AND、OR逻辑运算符混淆以及它们的工作方式
- 什么's VBA和Javascript布尔表达式之间的区别
- 评估JavaScript中给出布尔表达式的字符串
- 从树遍历中构建布尔表达式的算法
- = vs === 布尔表达式的运算符
- ngAnimateSwap-使用布尔表达式不会按预期设置动画
- 为什么这个布尔表达式不返回 true
- 布尔代数 - 使用 AND/OR 导出条件表达式是棘手的部分
- 如何在复杂的布尔表达式上避免三元
- 用pegjs解析布尔表达式链
- 反转布尔表达式
- 在不带eval的Javascript中计算字符串中的布尔表达式
- 为什么这个JavaScript代码在布尔表达式不再为true之后进入for循环
- 遍历json抽象语法树来构建布尔表达式
- JavaScript布尔表达式中的多个比较运算符
- javascript在布尔表达式中使用优化吗?
- 是Chrome Javascript评估布尔表达式正确
- 用于布尔表达式计算的Javascript eval
- 从JavaScript变量中计算布尔表达式
- AngularJS中布尔表达式的求值