js判定IE

var ie=!-[1,];

这句话对于多数前端来说都很熟悉,遇到判定是否是ie浏览器就用这个,但是对于由来以及为什么可能没有深入了解过。

短短6个bytes就做了判定。这个表达式是利用IE和标准浏览器对数组处理的差异性来实现的。但是IE经过这么多版本的更新这个判定现在并不能够判定所有的IE版本(IE9及其以上版本浏览器符合标准浏览器规范,即IE8及其以下版本浏览器是非标准浏览器)。直观的看代码:

ie8及其以下非标准浏览器:

>>> [1,]

[object Array][1, undefined]

>>> -[1,]

NaN

>>> !-[1,]

true

标准浏览器:

>>> [1,]

[1]

>>> -[1,]

-1

>>> !-[1,]

false

综上:以后可以直接用!-[1,]这六个bytes判定IE8及其以下版本的非标准浏览器。

js判定IE,布布扣,bubuko.com

js判定IE

上一篇:PHP5.5.13 + Apache2.4.7安装配置流程详解


下一篇:网页中对图像的采集