2023-11-22
プログラムにおいてバグの温床となるNaN値。
表面上は正しい値なので調査した時の疲労感と出てきた時のイライラが半端じゃない。
ifを使った古典的な調べ方も良いのですが、最近知った(というか思い出した)
isNaNという関数がめちゃめちゃ正確だったのでメモします。
NaNの略はNot of Number。数字じゃない何かが入っている時に
返ってくる値です。例えば以下の例。見た方が早そうなのでさっそくisNaNを使って判定しています。
isNaN(9A)
↑これは、一桁目の値が文字なのでNaN、すなわちtrueとして返されます。
このように引数に数字外の値が入っていればboolean判定で返してくれます。
本来NaN=undefinedでも通じるのですが、更に制度の高いNaN判定を
行う場合はisNaNを使ったほうが良いです。
以下はisNaN以外の数字の調べ方です。
まず最初。7これは直接NaN判定をしています。undefinedの方が広域なので精度は低いです。
if(window.localStorage.Count == "NaN"){ window.localStorage.setItem('Count', 1);
次がundefinedで調べる方法。
この判定の方法でもあぶりだすことが可能。ただしDOMの変化が速いreact
で使うと思うような動作をしない。
if(window.localStorage.Count == "undefined"){ window.localStorage.setItem('Count', 1);
中を見てみると、表記ではNaNなのですが、実際の中身はundefined。
従ってundefined明記でも通用します。
isNaNを使った条件式が以下。
if(isNaN(window.localStorage.Count)){ window.localStorage.setItem('Count', 0);
精度〇、読みやすさ〇といった感じで易しいですね、良い感じ。
これからも使わせていただきます。