Javascript-是否有更清晰的方式来表达;如果(a&;b| |!a&;b)";?
表示“如果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
:
测试(真,真);
测试(假,假);
测试(真、假);
测试(错误,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)
在比较之前将其转换为布尔值,除了养成使用类型感知==
的习惯,而不是使用类型强制=
。