code-computer

【配列対応版公開中】JavaScriptでIsEmptyとIsNotEmptyを実装しよう【必要ないことは無い】

JavaScript

JavaScriptでIsEmptyを独自実装

IsEmpty とは、一般的にStringの空文字チェックを行う関数です。

この記事で取り上げるのは、String Number Array Object などの全般について、nullだったり、undefinedだったり、キー無しオブジェクトだったり、要素0のリストだったりの判定を行う関数です。

JavaScriptは型明記無しで動作する(せざるを得ない)ので、Stringだけをターゲットに関数を作成するのはNGにしました。必ず、入ってくるのが文字列という担保が取れているならOKです!

他言語(やフレームワーク)だと、IsEmpty関数を利用して、判定するのでしょうが、JavaScriptだと無いのです。という事で、部品化しておきたいところ。

部品は「汎用性」をモットーに作成するとして、色々、組み込み過ぎて遅く・重くなるのは避けたい。(なんと、ワガママ!)

ベストプラクティスという訳ではありませんが、作ってみました。

動作確認ブラウザ:IE11、Firefox、Google Chrome

ソースコード

下準備:

下のコードをjsファイルに張り付ける。

他の個所からは、BaseUtil.IsEmpty(変数) で呼び出し可能です。

JavaScript部品のご紹介

String Number Array Object など全般的に上の部品で対応が可能です。

IsNotEmptyも用意しているので、If文の中で「!」を付け忘れて、バグを生むような事も減るでしょう。!とかの反転1文字ミスって意外と気づけないんですよね。

また、「BaseUtil」は自由に変更ください。「CommonUtil」は、業務共通処理かな?と思ったので、基盤系となる共通処理をBaseUtilにしています。※保守性を考慮して、DateUtilやStringUtilなども有りだと思います。

最後に

JavaSciprtに、「IsEmptyがいらない」みたいな考え方を持つ方もいるのですが、そういう方とプロジェクトが一緒になると困ってしまう……。

if文に直接使えば、暗黙的に判定が可能だとか言うのだが「可読性」とか「保守性」を考えて欲しい。趣味のプログラミングじゃないんだから!! というより、プログラミングしかできない人は、そういう発想に至るのだと思う。(設計書に書かれている事を、実現できればそれで良い。)

スポンサーリンク