if文を記載するとき、kintoneカスタマイズでもよく
- if(hoge){
- //hoge変数に値が入っているとき
- ...
- }
という構文を使うかと思います。しかし
- 空の文字列「""」
- 数値の「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 とかの判定について
(小技)undefined と 空文字のスマートな if 文判定
0件のコメント