自分用。
NaNは如何なる演算を行ってもNaN以外に変化しない。よって処理中にNaNが一度でも現れれば最終結果は常にNaNとなる。
> NaN + 1; NaN > NaN * 0; NaN > NaN - NaN; NaN
NaNは他のどんな値とも同値にならない。またNaN同士の同地判定すら偽を返却する。
> NaN == 1; false > NaN === 1; false > NaN == NaN; false > NaN === NaN; false
下記の通り、比較演算子を用いた評価もすべて偽を返却する。
> NaN > 1; false > NaN <= 1; false > NaN < NaN; false > NaN >= NaN; false
NaNであることを判定したい場合はisNaN()関数を用いる。
> isNaN(NaN); true > isNaN({}); true > isNaN(new Number(NaN)); true
おまけ。
NaNと併せ、特殊値扱いされている正の無限大、負の無限大も同時に判別したい場合はisFinite()関数を用いればよい。
isFinite()はNaN、及び正負の無限大以外の場合に真を返却する。
> isFinite(123); true > isFinite(NaN); false > isFinite(Infinity); false > isFinite(-Infinity); false