no-eq-null

禁止在没有类型检查运算符的情况下进行 null 比较

与没有类型检查运算符(==!=)的 null 进行比较,可能会产生意想不到的结果,因为在与 nullundefined 值进行比较时,比较将评估为真。

¥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 中引入。

资源

ESLint 中文网
粤ICP备13048890号