---
url: /docs/guide/usage/linter/rules/eslint/no-bitwise.md
---

### 作用

禁止使用位运算符。

### 为什么不好？

在 JavaScript 中使用位运算符非常罕见，通常 `&` 或 `|` 只是误输入的 `&&` 或 `||`，这将导致意外行为。

### 示例

此规则 **错误** 代码示例：

```javascript
var x = y | z;
```

```javascript
var x = y ^ z;
```

```javascript
var x = y >> z;
```

此规则 **正确** 代码示例：

```javascript
var x = y || z;
```

```javascript
var x = y && z;
```

```javascript
var x = y > z;
```

## 配置

此规则接受一个具有以下属性的配置对象：

### allow

type: `string[]`

default: `[]`

`allow` 选项允许将给定的位运算符列表用作此规则的例外。

例如 `{ "allow": ["~"] }` 将允许无限制地使用位运算符 `~`。如下所示：

```javascript
~[1, 2, 3].indexOf(1) === -1;
```

### int32Hint

type: `boolean`

default: `false`

当设置为 `true` 时，`int32Hint` 选项允许在 |0 模式中使用位运算 OR 进行类型转换。

例如使用 `{ "int32Hint": true }` 时，允许以下代码：

```javascript
const b = a | 0;
```

## 如何使用

## 版本

此规则是在 v0.0.3 中添加的。

## 参考资料
