var a = ! - [1,];
if(a){
alert('这是ie678');
}
通过上面的代码只有在ie678会出现弹窗。
原理
对于数组[1, ],
主流浏览器会自动忽略 “ , ” 后面的内容,所以 “ [1,] = [1] ”;
而在ie678中,会视 “ , ” 后面有一个空的字符,即 “ [1,] = [1,null] ”。
所以当我们对其进行算数运算时,
在主流浏览器中 “ -[1,] = -1 ”;
而在ie678中 “ -[1,] = NaN ”。
所以当我们进行取反运算时
在主流浏览器中 “ ! - [1,] = false ”;
而在ie678中 “ ! - [1,] = true ”。