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を返すことが保障されていると言う事実。 本来、論理値の型変換は自動的に行われるが、上記のようにすることでそれが明示的になると言うことでした。 ただ、これを上手く使う方法はちょっと分かってない。 追調査が必要。