PlusOne Blog

【JavaScript】!! ビックリマーク2つ

サイトで、色々と人のコードを見ていたら勉強になるなぁ~。

 
そんな中、ある記述に「何だこれは?」というのがありました。
それは「!」(ビックリマーク)2つ並んで使われているものでした。

  const isIEieVersion = !!ieVersion

 
興味津々で、調べてみました。
 
「!」は通常よく使いますが、否定の論理演算子です。

  var boo = true
  console.log !boo

とすれば、コンソールには false が表示されます。
 
では、「!!」は、否定の否定になります。すなわち二重否定の論理演算子なのです。

  var boo = true
  console.log !!boo

とすれば、コンソールには true が表示されます。
 
それなら、最初から「!!」なんて書かなきゃいいと思ったのですが、
値が undefined(未定義)のものを、falseに変換するために使用するようです。
(実際、ほとんどのブラウザはundefined(未定義)を false として扱ってくれるみたいですが)
否定演算子を使うと true か false のどちらかで値が返ってくるので、それを更に否定演算子にかけると true か false で返してくるということです。
 
if文などでは、true か false でないと判定できないため、「!!」を使って二重否定で変換する必要があるみたいですね。

この記事を読む
記事一覧に戻る