JavaScriptと二重否定

prototype.js 1.5.1のソースでこれは何??、と、同僚に聞かれた。

Browser: {
    IE:     !!(window.attachEvent && !window.opera),
    Opera:  !!window.opera,
    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1
  },

論理否定演算を二回行っていて一瞬ナンダコレと思ったが…にゃるほど。

var isXHRSupported = !!window.XMLHttpRequest

値が定義されていればtrueを取得する、ただそれだけだが、論理否定演算子を二重にする発想は無かった。perlのdefinedみたいのがあればこんな変な書き方もする必要ないんだけど、ちょっと面白いと思った。