请参阅此最小示例:
const result = (variableA && !variableB) || !variableA;
Run Code Online (Sandbox Code Playgroud)
在这个表达中,我不能简单地写这个
const result = variableA && !variableB;
Run Code Online (Sandbox Code Playgroud)
因为如果variableA = 0,结果会不一样
const variableA = 0;
const variableB = undefined;
console.log((variableA && !variableB) || !variableA); // true
console.log(variableA && !variableB); // 0
Run Code Online (Sandbox Code Playgroud)
有什么办法可以简化这个表达式吗?
(variableA && !variableB) || !variableA; 如果我们对下面的结果使用因式分解
(!variableA || variableA) && (!variableA ||!variableB)
Run Code Online (Sandbox Code Playgroud)
第一部分总是正确的然后只有第二部分对你来说就足够了
!variableA ||!variableB
Run Code Online (Sandbox Code Playgroud)
(!variableA || variableA) && (!variableA ||!variableB)
Run Code Online (Sandbox Code Playgroud)
你可以用
!(a && b)
Run Code Online (Sandbox Code Playgroud)
或等同于德摩根定律
!a || !b
Run Code Online (Sandbox Code Playgroud)
!(a && b)
Run Code Online (Sandbox Code Playgroud)