use-isnan
Recommended
Disallows comparisons to NaN
.
Disallows comparisons to NaN
.
Because NaN
is unique in JavaScript by not being equal to anything, including
itself, the results of comparisons to NaN
are confusing:
NaN === NaN
orNaN == NaN
evaluate tofalse
NaN !== NaN
orNaN != NaN
evaluate totrue
Therefore, this rule makes you use the isNaN()
or Number.isNaN()
to judge
the value is NaN
or not.
Invalid:
if (foo == NaN) {
// ...
}
if (foo != NaN) {
// ...
}
switch (NaN) {
case foo:
// ...
}
switch (foo) {
case NaN:
// ...
}
Valid:
if (isNaN(foo)) {
// ...
}
if (!isNaN(foo)) {
// ...
}