var isIE=!!window.ActiveXObject;
var isIE6=isIE&&!window.XMLHttpRequest;
var isIE8=isIE&&!!document.documentMode;
var isIE7=isIE&&!isIE6&&!isIE8;
if (isIE){
if (isIE6){
alert(”ie6〃);
}else if (isIE8){
alert(”ie8〃);
}else if (isIE7){
alert(”ie7〃);
}
}
上述是一般常用的JavaScript用來檢測浏覽器為IE哪個版本的代碼。
而由於今年1月一位俄國人,利用了IE與標准浏覽器在處理數組的toString方法的差異,完美的利用6bytes:!-[1,]完成了對是否為IE浏覽器的檢測 。而之前最短代碼為:!+"\v1″的7bytes。
利用這些發現我們同樣可以使我們的代碼寫的更短更有藝術。
如今檢測是否為IE6其實可以寫成
!-[1,]&&!window.XMLHttpRequest
這個代碼在實際使用中還是頗為有用的,既然能寫的更短何樂而不為呢。
相對於之前那大段累贅的分析navigator然後正則比較的方式當然效率更高,代碼更簡潔完全沒有不用道理。在JavaScript編寫過程中應該多多的利用諸如||、&&、!、!!這類的運算符,不光是在if()這樣的情況下。