逻辑运算符只有在它们都为非空或非空字符串时才为假
Logical operators to only be false when both of them are non-null or non-empty string
我希望逻辑运算符仅在满足以下条件时才为真:
- A 或 B 有
null
或有一个空字符串,这意味着它们中至少有一个会有一些东西,即 !((A === null) || (A === '')) || !((B === null) || (B === ''))
- A 和 B 均为 null 或具有空字符串
基本上,我唯一希望条件为假的情况是 A 和 B 同时具有非空或非空字符串。
如果 A 和 B 为 null、undefined、0 和 ''(empty),则以下条件有效。
if(!A || !B || A==='' || B===''){}
只需检查值并使用逻辑或链接条件。
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)));
这样的事情怎么样?
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'))
分配空值或""
之一时可以简化
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'))
我希望逻辑运算符仅在满足以下条件时才为真:
- A 或 B 有
null
或有一个空字符串,这意味着它们中至少有一个会有一些东西,即!((A === null) || (A === '')) || !((B === null) || (B === ''))
- A 和 B 均为 null 或具有空字符串
基本上,我唯一希望条件为假的情况是 A 和 B 同时具有非空或非空字符串。
如果 A 和 B 为 null、undefined、0 和 ''(empty),则以下条件有效。
if(!A || !B || A==='' || B===''){}
只需检查值并使用逻辑或链接条件。
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)));
这样的事情怎么样?
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'))
分配空值或""
之一时可以简化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'))