The use of bitwise operators in JavaScript is very rare and often &
or |
is simply a mistyped &&
or ||
, which will lead to unexpected behavior.
var x = y | z;
This rule disallows bitwise operators.
Examples of incorrect code for this rule:
/*eslint no-bitwise: "error"*/ var x = y | z; var x = y & z; var x = y ^ z; var x = ~ z; var x = y << z; var x = y >> z; var x = y >>> z; x |= y; x &= y; x ^= y; x <<= y; x >>= y; x >>>= y;
Examples of correct code for this rule:
/*eslint no-bitwise: "error"*/ var x = y || z; var x = y && z; var x = y > z; var x = y < z; x += y;
This rule has an object option:
"allow"
: Allows a list of bitwise operators to be used as exceptions."int32Hint"
: Allows the use of bitwise OR in |0
pattern for type casting.Examples of correct code for this rule with the { "allow": ["~"] }
option:
/*eslint no-bitwise: ["error", { "allow": ["~"] }] */ ~[1,2,3].indexOf(1) === -1;
Examples of correct code for this rule with the { "int32Hint": true }
option:
/*eslint no-bitwise: ["error", { "int32Hint": true }] */ var b = a|0;
This rule was introduced in ESLint 0.0.2.
© JS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/rules/no-bitwise