关于使用activeXObject判断IE浏览器

众所周知,IE有个activeXObject对象,来实现浏览器对本地文件的读写; 而其他的浏览器都是使用的XMLHttpRequest对象.

    今天想到了利用IE独有的activeXObject对象来判断是否为IE浏览器,在网上搜到了如下代码

    function isIE() {
        if (!!window.ActiveXObject || "ActiveXObject" in window)  
        return true;  
    else  
        return false;  
}

    但是关于这段代码, 我想知道为什么window.ActiveXObject前面要加两个!!,有什么具体讲究吗?

    然后为什么要这样判断?  "activeXObject" in window 和 window.activeXObject不是一样吗

2个!!是为转成布尔变量,加不加无所谓。

"ActiveXObject" in window是为了兼容IE11,IE11不支持window.ActiveXObject,会提示undefined