Javascript-是否有更清晰的方式来表达;如果(a&;b| |!a&;b)";?

Javascript-是否有更清晰的方式来表达;如果(a&;b| |!a&;b)";?,javascript,math,logical-operators,Javascript,Math,Logical Operators,表示“如果a和/或b都不为真”,即a和b的布尔值相同您可以使用!(a^b)或!a===!b: 测试(真,真); 测试(假,假); 测试(真、假); 测试(错误,1);//1=真实值 测试(假“”)//“”=falsy值 功能测试(a、b){ log(`!(${JSON.stringify(a)}^${JSON.stringify(b)})=>${!(a^b)}`); console.log(`!${JSON.stringify(a)}==!${JSON.stringify(b)}=>${!a=

表示“如果a和/或b都不为真”,即a和b的布尔值相同

您可以使用
!(a^b)
!a===!b

测试(真,真);
测试(假,假);
测试(真、假);
测试(错误,1);//1=真实值
测试(假“”)//“”=falsy值
功能测试(a、b){
log(`!(${JSON.stringify(a)}^${JSON.stringify(b)})=>${!(a^b)}`);
console.log(`!${JSON.stringify(a)}==!${JSON.stringify(b)}=>${!a==!b}`);
}
。作为控制台包装器{
最大高度:100%!重要;

}
有很多方法,但由于人们不习惯比较布尔结果是否相等,而且在JS中这是一个危险的习惯,我喜欢:

if (a ? b : !b) {
    ...
}

您正在寻找
!(a^b)
^
是异或(异或)运算符
!!a===!!b
也可以用于
(!!a===!!b)
在比较之前将其转换为布尔值,除了养成使用类型感知
==
的习惯,而不是使用类型强制
=