サイトで、色々と人のコードを見ていたら勉強になるなぁ~。
そんな中、ある記述に「何だこれは?」というのがありました。
それは「!」(ビックリマーク)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 でないと判定できないため、「!!」を使って二重否定で変換する必要があるみたいですね。