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

本文介绍了一种通过JavaScript代码判断浏览器是否为IE的方法,并探讨了该方法背后的原理。此外还提供了一个针对IE9及以上版本的替代方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近偶然看到一段判断是否为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 }

 

转载于:https://www.cnblogs.com/leungUwah/p/5724239.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值