js断定IE

var ie=!-[1,];前端

这句话对于多数前端来讲都很熟悉,遇到断定是不是ie浏览器就用这个,可是对于由来以及为何可能没有深刻了解过。数组

短短6个bytes就作了断定。这个表达式是利用IE和标准浏览器对数组处理的差别性来实现的。可是IE通过这么多版本的更新这个断定如今并不可以断定全部的IE版本(IE9及其以上版本浏览器符合标准浏览器规范,即IE8及其如下版本浏览器是非标准浏览器)。直观的看代码:浏览器

ie8及其如下非标准浏览器:object

>>> [1,]co

[object Array][1, undefined]版本

>>> -[1,]ie8

NaNundefined

>>> !-[1,]

true

标准浏览器:

>>> [1,]

[1]

>>> -[1,]

-1

>>> !-[1,]

false

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

相关文章
相关标签/搜索