no-bitwise
禁止按位运算符(no-bitwise)
在JavaScript中使用按位运算符非常罕见,经常&
或|
仅仅是输入错误,&&
或者||
会导致意外的行为。
var x = y | z;
规则细节
此规则不允许按位运算符。
此规则的错误
代码示例:
/*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;
此规则的正确
代码示例:
/*eslint no-bitwise: "error"*/
var x = y || z;
var x = y && z;
var x = y > z;
var x = y < z;
x += y;
选项
该规则有一个对象选项:
"allow"
:允许将按位运算符列表用作例外。
"int32Hint"
:允许在|0
模式中使用按位“OR”来进行类型转换。
允许
此规则的正确
代码示例包含以下{ "allow": ["~"] }
选项:
/*eslint no-bitwise: ["error", { "allow": ["~"] }] */
~[1,2,3].indexOf(1) === -1;
int32Hint
此规则的正确
代码示例包含以下{ "int32Hint": true }
选项:
/*eslint no-bitwise: ["error", { "int32Hint": true }] */
var b = a|0;
版本
这条规则是在ESLint 0.0.2中引入的。