kintoneでJavaScriptを書くときに気をつけるべき空判定の知識

if文を記載するとき、kintoneカスタマイズでもよく

  1. if(hoge){
  2.  //hoge変数に値が入っているとき
  3.  …
  4. }

 

という構文を使うかと思います。しかし

 

  • 空の文字列「“”」
  • 数値の「0」
  • 空のオブジェクト「{}」
  • 空の配列「[]」
  • undefined
  • null

 

などの値がどのようにtrue,falseに判別されるのか意識していないと、思わぬ動作不良につながります。

コンソールログで試すと結果は下記の通りになりました。

 

  • 空の文字列「“”」 :false
  • 数値の「0」 :false
  • 空のオブジェクト「{}」 :true
  • 空の配列「[]」 :true
  • undefined :false
  • null :false

 

例えばフィールド形式を見ると、

カテゴリー、作業者、添付ファイル、チェックボックスや複数選択、ユーザー選択、グループ選択、組織選択、テーブル

あたりは配列のvalueを持っているので、複数のフィールドをまとめて条件分岐するようなときに↑の構文を使うときは注意が必要です。

 

また、数値系の値が入るフィールドは基本的に文字列で扱われているので、0の場合も「文字列の0」で値が取得されます。

しかし、外部APIを使用したり、計算の関係でNumber()を扱う場合には0の場合にfalseになってしまうのでこちらも注意する必要があります。

 

その他のtrue,falseの分岐については是非一度Chrome開発者ツールのコンソール画面等でお試しください。

 

参考:

[JavaScript] null とか undefined とか 0 とか 空文字(‘’) とか false とかの判定について

http://qiita.com/phi/items/723aa59851b0716a87e3

 

(小技)undefined と 空文字のスマートな if 文判定

https://developer.cybozu.io/hc/ja/articles/201718170