noGlobalIsNan
Summary
Section titled Summary- Rule available since:
v1.0.0 - Diagnostic Category:
lint/suspicious/noGlobalIsNan - This rule is recommended, which means is enabled by default.
- This rule has an unsafe fix.
- The default severity of this rule is error.
Description
Section titled DescriptionUse Number.isNaN instead of global isNaN.
Number.isNaN() and isNaN() do not have the same behavior.
When the argument to isNaN() is not a number, the value is first coerced to a number.
Number.isNaN() does not perform this coercion.
Therefore, it is a more reliable way to test whether a value is NaN.
Examples
Section titled ExamplesInvalid
Section titled InvalidisNaN({}); // truecode-block.js:1:1 lint/suspicious/noGlobalIsNan FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ isNaN is unsafe. It attempts a type coercion. Use Number.isNaN instead.
> 1 │ isNaN({}); // true
│ ^^^^^
2 │
ℹ See the MDN documentation for more details.
ℹ Unsafe fix: Use Number.isNaN instead.
1 │ - isNaN({});·//·true
1 │ + Number.isNaN({});·//·true
2 2 │
Valid
Section titled ValidNumber.isNaN({}); // falseHow to configure
Section titled How to configure{ "linter": { "rules": { "suspicious": { "noGlobalIsNan": "error" } } }}