首页 > 其他 > 详细

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

时间:2016-08-01 00:16:27      阅读:145      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!