我们写程序时候,经常会遇到if/else
的情况,比如下:
let a = 1, b = 2;
if(a === 1 && b === 2) {
// 此处为a=1且b=2的情况
} else {
// 此处为相反的情况
}
如果上面的逻辑中,我想将else
中的逻辑当做if
进行判断,该怎么写呢,原理上的依据是什么,我记得大学时候课本有过这样的讲述,但是不记得了,想去搜索,可能是因为无法准确描述出这个问题,找不到对应的答案,如果哪位知道,还麻烦告知一下原理,或者能给一个讲述此逻辑原理的链接,感谢!
上面的a
和b
其实有如下四种情况:
1. a = 1, b = 2
2. a = 1, b != 2
3. a != 1, b = 2
4. a != 1, b != 2
我们上面的if(a === 1 && b === 2)
是判断了第一种情况,剩下的2,3,4当做else
中兜底了,如果我想将2,3,4的3中情况当做一个条件,写到一个if
中,else
处理a === 1 && b === 2
的情况,写法如下,但是原理上该怎么解释呢:
if(a !== 1 || b !== 2) {
// 此处满足2,3,4种情况,但是原理是什么
} else {
// 此处为a === 1 && b === 2的第1种情况
}
a === 1 && b === 2
逻辑取反就是!(a === 1 && b === 2)
,这样是最简单的写法。原条件中是两个条件需要同时满足 (
&&
),所以只要有一个条件不能满足就达到了相反条件,用语言描述就是a !== 1
或者b !== 2
,组合起来就是a !== 1 || b !== 2
。VSCode 的重构功能可以自动转换: