0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【JavaScript(loadash)】値があるかどうかを判定する関数チートシート

Posted at

1. はじめに

 今まで、null判定・undefined判定などの値があるかどうかを判定するロジックに悩むことが多かったので、メモ書きとしてまとめていたもの+調査したものを公開していきます。
 今回はJavaScript編です。今でもよく使っているloadash関数を使った方法をまとめました。

2. lodashによる値存在判定

※型定義が分かりやすいようにAngularの書き方で書いています。

① _.isNull()

Java・SpringBootなどのisNullメソッドと同様、nllかどうかを判定します。null以外はfalseになります。

    null_sentence : string = null;
    
    // 結果:nullです
    if (_.isNull(null_sentence)) {
       System.out.print("nullです。");
    }

###②_.isUndefined()
関数にあるようにundefinedかどうかを判定します。それ以外の値に関してはfalseを返します。

    undefined_sentence : string = undefined;
   
    // 結果:undefinedです
    if (_.isNil(undefined_sentence )) {
       System.out.print("undefinedです。");
    }

③_.isNil()

nullかundefinedかどうかを判定します。それ以外の値に関してはfalseを返します。

    null_sentence : string = null;
    undefined_sentence : string = undefined;
    empty_sentence : string = "";
   
    // 結果:nullです
    if (_.isNil(null_sentence)) {
       System.out.print("nullです。");
    }

    // 結果:undefinedです
    if (_.isNil(undefined_sentence )) {
       System.out.print("undefinedです。");
    }

    // 結果:何も返さない
    if (_.isNil(empty_sentence)) {
       System.out.print("空文字です。");
    }

④_.isEmpty()

値が空かどうかを判定します。
ただし、数字・真偽値でも空判定されます。
(筆者はその仕様を知った時「と゛お゛し゛て゛た゛よ゛お゛お゛お゛!」とリアルで叫びました。)
また、半角スペースはfalseで返ります。

    null_sentence : string = null;
    undefined_sentence : string = undefined;
    empty_sentence : string = "";
    number_value : number= 1;
    boolean_value : boolean = false;
    array_value : string[] =  [];
    object_value :  Object =  {};

    space_sentence : string = " ";
   
    // 結果:nullです。
    if (_.isEmpty(null_sentence )) {
       System.out.print("nullです。");
    }

    // 結果:undefinedです。
    if (_.isEmpty(undefined_sentence )) {
       System.out.print("undefinedです。");
    }

    // 結果:空文字です。
    if (_.isEmpty(empty_sentence )) {
       System.out.print("空文字です。");
    }

    // 結果:1ですが空です。
    if (_.isEmpty(number_value )) {
       System.out.print("1ですが空です。");
    }

    // 結果:falseですが空です。
    if (_.isEmpty(boolean_value )) {
       System.out.print("falseですが空です。");
    }

    // 結果:空の配列です。
    if (_.isEmpty(array_value )) {
       System.out.print("空の配列です。");
    }

    // 結果:空のオブジェクトです。
    if (_.isEmpty(object_value )) {
       System.out.print("空のオブジェクトです。");
    }

    // 結果:何も返さない
    if (_.isEmpty(space_sentence )) {
       System.out.print("半角スペースです。");
    }

| 引数 | 引数(コード) | _.isNull() | _.isUndefined() | _.isNil() | _.isEmpty() |
|----|----|----|----|----|
| null | null | true | false | true | true |
| undefined| '' | false | true | true | true |
| 空文字 | '' | false | false | false | true |
| 数字(0)| 0 | false | false | false | true |
| 数字(1)| 1 | false | false | false | true |
| 真偽値(true)| true | false | false | false | true |
| 真偽値(false)| false | false | false | false | true |
| 空の配列 | [] | false | false | false | true |
| 配列 | [0,1,2] | false | false | false | true |
| 空のオブジェクト| {} | false | false | false | true |
| オブジェクト | {0,1,2} | false | false | false | true |

3.さいごに

今回の記事は以上です。
次回のテーマは未定ですが、何かしら考えます。
よろしくお願いします。

4.参考資料

lodashの真偽値判定まとめ
[Javascript] Lodashによる空判定の返り値まとめ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?