这种写法是利用各浏览器对转义字符"v"的理解不同来判断浏览器类型。
在IE中,"v"没有转义,得到的结果为"v"。
而在其他浏览器中"v"表示一个垂直制表符,所以ie解析的"v1" 为 "v1",而其他浏览器解析到 "v1" 为 "1"。
在前面加上一个"+"是为了把后面的字符串转变成数字。
由于IE认为"v1"为"v1",所以前面的加上加号无法转变成数字,为NaN
其他浏览器均能变成 1。
上面是百度查到的答案。
但是下面我测试的时候竟然出现了这样的问题!
if(!+"v1"){ alert("IE"); }else{ alert("非IE"); }
IE下(IE9):
谷歌下:
火狐下:
现在是不是不能通过这个判断了?个人觉得是这样的!
将IE的模式改成IE8,就得到我们想要的结果了.
这个现在是不是能拿来判断IE9与IE8呢?- -