我读了一篇关于 Test for Internet Explorer in JavaScript 的文章,该文章指出快速测试是:
var isMSIE = /*@cc_on!@*/0;
if (isMSIE) {
// do IE-specific things
} else {
// do non IE-specific things
}
但其中一个comments显示了另一种方式:(我不得不说,它有效)
if (-[1,]) {
// do non IE-specific things
} else {
// do IE-specific things
}
所以我问:
-[1,]
有什么特别之处,IE不能识别它而其他人呢?
P.S。
发现了另一个快速的虚假伎俩
IE='\v'=='v'
答案 0 :(得分:5)
[1,].toString()
是1,
,当以算术-
为前缀时,会输出假NaN
而其他浏览器会返回[1,].toString() === 1
真实的-1
。
它是一种可怕的嗅探技术,完全避免它,并且正如其他人评论的那样检测对特定功能的支持。