変数が定義されているか、nullかどうかの判定をする[Javascript]
変数が定義されているか、nullかどうかの判定をする[Javascript]:
ある変数が(ここでは hoge という名前とします)定義されていない状態で参照すると、
のように、「未定義ですよー」というエラーを発生させてしまいます。
それを回避するためには、
上記のように、typeof演算子というものを用いて判定します。
未定義のものに対してtypeof演算子を用いると、"undefined"という文字列が返ってくるのでそれで条件分岐ができます。
次に、ある変数がnullかどうか判定したいとしましょう。
先ほどのを真似して以下のように書くと...
なんとこれ、else句に飛び込んできます。
こちらに書いてある通り、typeof null は "object" という文字列を返します。(歴史的な事情があるようです)
なのでnullの判定は素直に、
と書いてあげましょう。
と、イコール2つの比較をすると、undefinedとnullは等しいと判定されます。
それを利用して、 @forl_head_officer さんのコメントのように条件分岐することができます。
変数が定義されているか判定する
ある変数が(ここでは hoge という名前とします)定義されていない状態で参照すると、console.log(hoge) // ReferenceError: hoge is not defined
それを回避するためには、
const hoge = 'fuga' if (typeof hoge !== 'undefined') { console.log(hoge) // fuga console.log(typeof hoge) // string console.log(typeof undefinedVarible) // undefined }
未定義のものに対してtypeof演算子を用いると、"undefined"という文字列が返ってくるのでそれで条件分岐ができます。
nullかどうか判定する
次に、ある変数がnullかどうか判定したいとしましょう。先ほどのを真似して以下のように書くと...
const foo = null if(typeof foo === 'null'){ console.log('null') }else{ console.log('not null') }
こちらに書いてある通り、typeof null は "object" という文字列を返します。(歴史的な事情があるようです)
なのでnullの判定は素直に、
const foo = null if(foo === null){ console.log('null') // こっちが呼ばれる! }else{ console.log('not null') }
undefinedとnullをいっぺんに判定したいとき
undefined === null // false undefined == null // true
それを利用して、 @forl_head_officer さんのコメントのように条件分岐することができます。
コメント
コメントを投稿