変数が定義されているか、nullかどうかの判定をする[Javascript]

変数が定義されているか、nullかどうかの判定をする[Javascript]:


変数が定義されているか判定する

ある変数が(ここでは 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演算子というものを用いて判定します。

未定義のものに対してtypeof演算子を用いると、"undefined"という文字列が返ってくるのでそれで条件分岐ができます。


nullかどうか判定する

次に、ある変数がnullかどうか判定したいとしましょう。

先ほどのを真似して以下のように書くと...

const foo = null 
if(typeof foo === 'null'){ 
  console.log('null') 
}else{ 
  console.log('not null') 
} 
なんとこれ、else句に飛び込んできます。
こちらに書いてある通り、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 
と、イコール2つの比較をすると、undefinedとnullは等しいと判定されます。

それを利用して、 @forl_head_officer さんのコメントのように条件分岐することができます。

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)