0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

null、undefinedの判定

Posted at

以下で判定可能

var nullOrUndefined = (val) => {
    // ==演算子を使用する。
    // ===にすると厳密な比較が行われ、undefinedの場合falseになる
    if (val == null) {
        console.log("null or undefined");
    } else {
        console.log(val);
    }
};

var a;
nullOrUndefined(a);
// "null or undefined"
var b = null;
nullOrUndefined(b);
// "null or undefined"
var c = "hoge";
nullOrUndefined(c);
// "hoge"

コーディング規約によっては==の使用が禁止されていて
===しか使用できないことがある(体験談…)

その場合の代替案をいくつか調べてみた。

###1.自分でメソッドを作る
無ければ作ればいいじゃないの精神。

var isNullOrUndefined = (val) => {
    if (val === null) return true;
    if(val === undefined) return true;
    return false;
};

###2.!hogeによる判定
0、false、空文字の場合もtrueと判定されることを理解して使用する。

if (!hoge) { 
    //null, undefined, 0, 空文字(''), falseの場合trueとなりこのブロックに入る
}

自分は判定対象の値に0が入っていることもあり1の方法を使用していたが、
2つ以上の値を判定する場合、記述数が多くなりモヤモヤしていた。

// もしも変数名が長いと手に負えない
if (isNullOrUndefined(a) && isNullOrUndefined(b)){}

2つ以上の値のチェックが頻繁に必要な場合、可変長で引数を受け取るメソッドを作成しておいても良いのかもしれない。

var isNullOrUndefinedAll = (...args) => {
  for (let val of args) {
    if (val !== null && val !== undefined) return false;
  }
  return true;
};
0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?