strict vs loose equality with undefined and null
// see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness
[
// loose equality with ||
'undefined != undefined || undefined != null',
'null != undefined || null != null',
'123 != undefined || 123 != null',
'"foobar" != undefined || "foobar" != null',
// loose equality with &&
'undefined != undefined && undefined != null',
'null != undefined && null != null',
'123 != undefined && 123 != null',
'"foobar" != undefined && "foobar" != null',
// strict equality with ||
'undefined !== undefined || undefined !== null',
'null !== undefined || null !== null',
'123 !== undefined || 123 !== null',
'"foobar" !== undefined || "foobar" !== null',
// strict equality with &&
'undefined !== undefined && undefined !== null',
'null !== undefined && null !== null',
'123 !== undefined && 123 !== null',
'"foobar" !== undefined && "foobar" !== null',
].forEach((booleanLogic) => console.log(`${eval(booleanLogic)} === (${booleanLogic})`));
no comments