码迷,mamicode.com
首页 > Web开发 > 详细

js判别过滤出ie8、ie7

时间:2014-06-12 18:44:15      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:style   strong   line      不同的   js   

最近看到一种if语句if(!+"\v1")

不知其用意,于是调式了一番,原来ie8与ie8以下浏览器中(!+“\v1”)返回true,其他主流浏览器跟ie9+则返回false。

为什么会这样?

先把语句拆分出来分析  

1:“\v1”;  

\v在正则表达式中表示”竖向制表符“

console.log("\v1");在ie8与ie8以下浏览器中返回v1,在其他浏览器中返回1,这就是为什么两者会返回不同的布尔值的根本原因。(但为什么会返回v1和1我就不太清楚了,但我觉得是ie8以及一下的版本不能识别“\”,而其他浏览器就会将它作为制表符处理)。

2 : +;  

一元加法操作符,它会将它后面的字符或者对象转型(如果是数值的话就保持不变),其实跟Number对字符的转型是一样的。

+“1”  输出1   

+“v1” 输出NaN 

3 : !

最后一个就最容易了,它会将一个字符转成布尔值,毋庸置疑,!1返回false,!NaN 返回true.

 

 

js判别过滤出ie8、ie7,布布扣,bubuko.com

js判别过滤出ie8、ie7

标签:style   strong   line      不同的   js   

原文地址:http://www.cnblogs.com/outside/p/3781746.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!