no-eq-null
禁止在没有类型检查运算符的情况下进行 null
比较
与没有类型检查运算符(==
或 !=
)的 null
进行比较,可能会产生意想不到的结果,因为在与 null
和 undefined
值进行比较时,比较将评估为真。
¥Comparing to null
without a type-checking operator (==
or !=
), can have unintended results as the comparison will evaluate to true when comparing to not just a null
, but also an undefined
value.
if (foo == null) {
bar();
}
规则详情
¥Rule Details
no-eq-null
规则旨在通过确保与 null
的比较仅匹配 null
而不是 undefined
来减少潜在的错误和不需要的行为。因此,它会在使用 ==
和 !=
时将比较标记为 null。
¥The no-eq-null
rule aims reduce potential bug and unwanted behavior by ensuring that comparisons to null
only match null
, and not also undefined
. As such it will flag comparisons to null when using ==
and !=
.
此规则的错误代码示例:
¥Examples of incorrect code for this rule:
/*eslint no-eq-null: "error"*/
if (foo == null) {
bar();
}
while (qux != null) {
baz();
}
此规则的正确代码示例:
¥Examples of correct code for this rule:
/*eslint no-eq-null: "error"*/
if (foo === null) {
bar();
}
while (qux !== null) {
baz();
}
何时不使用
¥When Not To Use It
如果你想在一般情况下强制执行类型检查操作,请改用更强大的 eqeqeq。
¥If you want to enforce type-checking operations in general, use the more powerful eqeqeq instead.
兼容性
¥Compatibility
-
JSHint:该规则对应 JSHint 的
eqnull
规则。¥JSHint: This rule corresponds to
eqnull
rule of JSHint.
版本
此规则是在 ESLint v0.0.9 中引入。