JavaScript - null、undefinedチェック方法

変数が null かどうかを undefined 確認する方法を紹介します。

1. 厳密に(Strict) null, undefined を確認する方法

null と undefined の型を出力してみると、object と undefined で異なる型が出力されます。

let data = null;
console.log(typeof(data)) // object

data = undefined;
console.log(typeof(data)) // undefined

2つを正確に区切るには、 === または Object.is() を使って変数を比較する必要があります。

以下のように、変数がnullか、 undefined かを正確に区別して確認できます。

let data = null;
console.log("#1. data:", data);
console.log('data === undefined:', data === undefined);
console.log('data === null:', data === null);
console.log('Object.is(data, undefined):', Object.is(data, undefined));
console.log('Object.is(data, null):', Object.is(data, null));

data = undefined;
console.log("#2. data:", data);
console.log('data === undefined:', data === undefined);
console.log('data === null:', data === null);
console.log('Object.is(data, undefined):', Object.is(data, undefined));
console.log('Object.is(data, null):', Object.is(data, null));

Output:

#1. data: null
data === undefined: false
data === null: true
Object.is(data, undefined): false
Object.is(data, null): true

#2. data: undefined
data === undefined: true
data === null: false
Object.is(data, undefined): true
Object.is(data, null): false

2. 厳密にはない(loosely) null, undefinedを確認する方法

null と undefined は異なりますが、使用する立場で使用できないデータと考えることができます。 つまり、変数がnullまたはundefinedの場合はtrueを返すようにチェックできます。

このようなときは、以下のように == 演算子で比較しなければなりません。結果を見ると、null、undefinedのときにすべてtrueを返します。

let data = null;
console.log("#1. data:", data);
console.log('data == undefined:', data == undefined);
console.log('data == null:', data == null);

data = undefined;
console.log("#2. data:", data);
console.log('data == undefined:', data == undefined);
console.log('data == null:', data == null);

Output:

#1. data: null
data == undefined: true
data == null: true

#2. data: undefined
data == undefined: true
data == null: true
codechachaCopyright ©2019 codechacha