論理否定演算子を2重にすると。

C言語などでもおなじみ論理否定演算子の"!"ですが。

JavaScriptの中で2重にして使われているところがあって凄く疑問だったのです。

例えば

if(!!flag){〜処理〜}

if(flag){〜処理〜}

は同じじゃないかと思ってたんですけど、そうではなかったようです。

http://d.hatena.ne.jp/otuzak/20080215/1203090900
http://d.hatena.ne.jp/Arui_Kashiwagi/20071203#p1

上記のブログで書かれていたことは、

論理否定演算子を2重にした場合論理値でなく、1か0を返すことが保障されていると言う事実。
本来、論理値の型変換は自動的に行われるが、上記のようにすることでそれが明示的になると言うことでした。

ただ、これを上手く使う方法はちょっと分かってない。
追調査が必要。