no-eq-null
禁止在没有类型检查运算符的情况下使用 null
进行比较
在没有类型检查运算符(==
或 !=
)的情况下与 null
进行比较可能会产生意外的结果,因为当不仅与 null
比较,而且与 undefined
值比较时,比较将评估为真。
if (foo == null) {
bar();
}
规则详细信息
no-eq-null
规则旨在通过确保与 null
的比较仅匹配 null
,而不是也匹配 undefined
来减少潜在的错误和意外行为。因此,当使用 ==
和 !=
与 null 进行比较时,它将标记这些比较。
此规则的错误代码示例
在代码游乐场中打开
/*eslint no-eq-null: "error"*/
if () {
bar();
}
while () {
baz();
}
此规则的正确代码示例
在代码游乐场中打开
/*eslint no-eq-null: "error"*/
if (foo === null) {
bar();
}
while (qux !== null) {
baz();
}
何时不使用它
如果您想通常强制执行类型检查操作,请改用功能更强大的 eqeqeq。
兼容性
- JSHint:此规则对应于 JSHint 的
eqnull
规则。
版本
此规则是在 ESLint v0.0.9 中引入的。