# no-eq-null
不允许没有类型检查运算符的 null
比较
与没有类型检查运算符(==
或 !=
)的 null
进行比较,可能会产生意想不到的结果,因为在与 null
和 undefined
值进行比较时,比较将评估为真。
if (foo == null) {
bar();
}
# 规则详情
no-eq-null
规则旨在通过确保与 null
的比较仅匹配 null
而不是 undefined
来减少潜在的错误和不需要的行为。因此,它会在使用 ==
和 !=
时将比较标记为 null。
此规则的错误代码示例:
/*eslint no-eq-null: "error"*/
if (foo == null) {
bar();
}
while (qux != null) {
baz();
}
此规则的正确代码示例:
/*eslint no-eq-null: "error"*/
if (foo === null) {
bar();
}
while (qux !== null) {
baz();
}
# 何时不使用
如果您想在一般情况下强制执行类型检查操作,请改用更强大的 eqeqeq
。
# 兼容性
JSHint
:该规则对应 JSHint 的eqnull
规则。