标签: javascript boolean boolean-logic boolean-expression
我需要简化这个表达式
var foo = (!A && B && C) || (A && B && !C) ;
有人能建议使用最少的运营商进行良好的简化吗?
答案 0 :(得分:4)
B在两种情况下都很常见,因为可以使用休息条件运算符。
B
var foo = B && (A ? !C : C);
它是一个XOR操作,请阅读Logical XOR in JavaScript
答案 1 :(得分:2)
由于(!A && C) || (A && !C)是XOR的扩展,您可以用XOR表达式替换该部分:
(!A && C) || (A && !C)
var foo = B && (!!A ^ !!C);