Are you a Number?
Number.isNaN() and isNaN() behave differently.
| Number.isNaN() | isNaN() | |
|---|---|---|
'asdf' |
false | true |
undefined |
false | true |
'10f' |
false | true |
{} |
false | true |
"NaN" |
false | true |
The MDN docs explain their differences as isNaN() coerces the parameter to a number.
Note that TypeScript only accepts unknown as the parameter type, even though JS handles additional cases (i.e. undefined).
Cases with the same behaviour:
| Number.isNaN() | isNaN() | |
|---|---|---|
123 |
false | false |
'123' |
false | false |
'' |
false | false |
' ' |
false | false |
null |
false | false |
[] |
false | false |
Infinity |
false | false |
false |
false | false |
0/0 |
true | true |
NaN |
true | true |