条件式で
if (Number(var) !== NaN) {
...
のように書いて、var
が数字文字列(例: '1'
)だった時の処理をif文内で行おうしたら、なぜかNumber(var) !== NaN
がtrue
判定されてしまい、想定通りの処理ができなかった。
調査したところ、どうやらNaN === NaN
がfalse
判定される仕様らしい。この場合、
if (!isNaN(Number(var)) {
...
で想定通り動くようになった。が、今度はeslintに
Unexpected use of 'isNaN'
と怒られる。
if (!Number.isNaN(Number(var))) {
...
これでeslint先生のお叱りも回避できた。よかったよかった。
参考記事