如何简化`(variableA && !variableB) || JavaScript 中的 !variableA` 表达式?

Jos*_*ang 9 javascript

请参阅此最小示例:

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)

有什么办法可以简化这个表达式吗?

pc_*_*der 8

(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)