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及其以下版本的非标准浏览器。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。