見出し画像

TypeScript 入門の記録(30)プロを目指す人のためのTypeScript入門(15)比較演算子とNaN

 前回は、比較演算子と等価演算子について学習しました。今日は、論理演算子について学習したいのですが、その前に比較演算子とNaNについて少し確認しておきます。

比較演算とNaN

 比較演算子の節の最後にコラム「比較演算とNaN」があったので、飛ばさずに読みます。NaN は数値型なのに数値を表さないのは知っていましたが、

比較演算子や等価演算子を数値に対して用いる場合、そのどちらかのオペランドにNaNが与えられたときは、常にfalseを返す

プロを目指す人のためのTypeScript入門 コラム5「比較演算とNaN」

という注意点があるのをこのコラムで知りました。(知らないと謎のバグを呼ぶのでは???)

NaNは何と比較してもfalseが返ってくる?

x にNaNが与えられている状態では、x === NaN の結果は false になるそうなのです。(これは、素直に納得できないですが、そういう仕様だと理解するしかありません。。。)では、xがNaNかどうかをどうやって判定すればよいか?この場合は、Number.isNaN関数を使えばOKとのこと。ちょっと違いますが、SQLで値をNullと比較するときに、isNullを使うのを思い出しました。

試してみました

これは、覚えておかないと、数値の比較で条件分岐したときに値がNaNの場合に思わぬ挙動をしてハマりそうです。NaNではないときに対象の数値と比較するようにすれば良いかな。

今日はここでタイムアップです。この続きは、次の週末の予定です。さっき気がついたんですけど、TypeScript入門の記録の途中からTypeScriptの綴りを間違っている気がします。(Tweetも?)過去のnoteのチェックをしないと。。。

いいなと思ったら応援しよう!