逻辑运算符只有在它们都是非null或非空字符串时才为false



只有满足以下条件时,我才希望逻辑运算符为true:

  1. A或B都有null或有一个空字符串,这意味着它们中至少有一个会有!((A === null) || (A === '')) || !((B === null) || (B === ''))
  2. 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'))

相关内容

  • 没有找到相关文章

最新更新