码迷,mamicode.com
首页 > 其他好文 > 详细

一个被称为世界上最短的判断IE方法

时间:2016-08-01 00:19:17      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:

最近偶然看到一段判断是否为IE浏览器的代码:

1 if(!+[1,]) {
2    console.info("IE 浏览器");  
3 } else {
4     console.info("非 IE浏览器");
5 }

短短的几个字节就判断出当前浏览器是否为IE浏览器,有意思。

最后看了这里才知道原来是使用了IE浏览器自身编译js代码上的区别才明白;

原来在IE浏览器中如果 +[1,] IE浏览器解析的顺序是[1,].toString()-->‘1,‘ 而 ‘1,‘-->Number(‘1,‘) -->NaN;在非IE浏览器中+[1,] js解析的时候会把‘1,‘后面的“,”号给去掉了

所以得到的结果是1;所以我们就明白了在IE浏览器中!+[1,] 得到NaN, !NaN 为true;就是利用了IE浏览器中处理数组的toString()方法来完成判断;不得不佩服。

但是接下来的研究中发现其实这个bug在IE9的时候已经被解决了,请看这里所以IE8及以下版本用此判断没问题的;但是我们也有别的办法判断即:

1 if(window.VBArray) {
2    console.info("IE浏览器");  
3 } else {
4     console.info("非IE浏览器");  
5 }

 

一个被称为世界上最短的判断IE方法

标签:

原文地址:http://www.cnblogs.com/leungUwah/p/5724239.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!