只有满足以下条件时,我才希望逻辑运算符为true:
- A或B都有
null
或有一个空字符串,这意味着它们中至少有一个会有!((A === null) || (A === '')) || !((B === null) || (B === ''))
- A和B都为null或具有空字符串
基本上,我希望条件为false的唯一时间是当A和B同时具有非null或非空字符串时。
只需检查值并用逻辑OR连接条件。
const check = (a, b) => a === null || a === '' || b === null || b === '';
// the above is the same as this, like the text requests
// (a === null || a === '') !== (b === null || b === '') ||
// (a === null || a === '') && (b === null || b === '');
console.log([
[null, null], // true
[null, ''], // true
['', null], // true
['', ''], // true
[1, 1], // false
[null, 1], // true
[1, null] // true
].map(a => check(...a)));
如果A和B为null、未定义、0和''(空(,则以下条件将起作用。
if(!A||!B|| A===''||B===''({}
这样的东西怎么样?
let test = (a,b) => {
return !(a != null && b != null) || !( a != '' && b != '')
}
console.log(test(null, null))
console.log(test('', ''))
console.log(test('a','b'))
console.log(test(null,'b'))
可以在分配null或">时进行简化
let test = (a = "", b = "") => {
if(a === null) a = ""
if(b === null) b = ""
return !( a != '' && b != '')
}
console.log(test(null, null))
console.log(test('', ''))
console.log(test('a','b'))
console.log(test(null,'b'))