ど素人から毛を生やす。<延>

jsで「入力値がある場合」をチェックするならnullくらいは考慮しよう

Web > javascript 2020年3月4日(最終更新:4年前)

2020年3月4日に作成されたページです。
情報が古かったり、僕が今以上のど素人だった頃の記事だったりする可能性があります。

どもです。

例えばセレクタを書き間違えるなどで指定の要素が存在しなかった場合、undefinedが返されます。

プルダウンの選択状態が解除されてしまった場合、valはnullになります。

そんな感じでjsで「入力値がある場合」をチェックしようとすると、undefinedやnullが来る可能性を考慮しなければなりません。
いやundefinedは正しく動いているなら来ない可能性が高いですが、nullくらいは考慮しておきましょう。

null      != 0    //TRUE
undefined != 0    //TRUE

null      >  0    //FALSE
undefined >  0    //FALSE

null      >= 0    //TRUE
undefined >= 0    //FALSE

null              //FALSE
undefined         //FALSE
''                //FALSE
 0                //FALSE
'0'               //TRUE

'0'       != 0    //FALSE
'1'       != 0    //TRUE
'0'       >  0    //FALSE
'1'       >  0    //TRUE

うわ面倒臭っ

何が面倒って if('0') がtrueなところです。jsで入力値を回収したら文字列型で来るのに。
ということで、キャストしないなら(変数 a の場合)

//値なしが「0」の場合
if( a > 0 )

または

//値なしが空白の場合
if( a )

って感じの結論になります。

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった (0)
  • (・∀・) 参考になった (0)
  • (`・ω・´) 役に立った (0)