oxc/bad-bitwise-operator Restriction
What it does
This rule applies when bitwise operators are used where logical operators are expected.
Why is this bad?
Bitwise operators have different results from logical operators and a TypeError
exception may be thrown because short-circuit evaluation is not applied. (In short-circuit evaluation, right operand evaluation is skipped according to left operand value, e.g. x
is false
in x && y
.)
It is obvious that logical operators are expected in the following code patterns:
javascript
e && e.x;
e || {};
e || "";
Example
javascript
if (obj & obj.prop) {
console.log(obj.prop);
}
options = options | {};
input |= "";