これは何?
NaN === NaN が false になる理由を文学的に無理やり考えたよ。という記事。
ぼくがかんがえたさいきょうのりゆう
一言でいうと
「NaN」は「エラー」だから。
「NaN === NaN」があったとして
「左辺のエラー」と「右辺のエラー」が同じかどうかは分からない。
「左辺のエラー」は「0/0
のNaN」で
「右辺のエラー」は「文字列を数値への変換に失敗した結果のNaN」かもしれない。
もちろん、同じNaNである可能性もある。
じゃあどうすんのって話だが
ここは、「疑わしきは罰せず」の信念で「false」ということにしたのではないだろうか?(適当)
そもそも
NaNとNaNを比較するということ自体が変に感じる(個人の感想)。
「正常じゃないもの」と「正常じゃないもの」を比較することに意味があるのだろうか。
JavaScriptは、そんなものを比較しても意味がないよ。というメッセージを「false」という結果で我々に伝えているのではないだろうか?(適当)