使用(!+\v1)判断是否是IE浏览器

之前在一牛人博客上面看到(!+"\v1")这种写法,然后马上找度娘,找到答案。

其实就是利用了ie的一个bug。

在ie浏览器中,,"\v"没有转义,得到的结果为"v"而在其他浏览器中"\v"表示一个垂直制表符(一定程度上相当于空格)所以ie解析的"\v1" 为 "v1"而其他浏览器解析到 "\v1" 为 "1"在前面加上一个"+"是为了把后面的字符串转变成数字由于ie认为"\v1"为"v1",所以前面的加上加号无法转变成数字,为NaN其他浏览器均能变成 1在js中,进行逻辑判断时可使用数字,并且 0 为 false,其他数字则为true所以 !1 = false ,于是其他浏览器均返回falsejs在遇到如下几个值会返回false:undefined、null、NaN,所以ie中 !NaN = true

我们人生中最大的懒惰,就是当我们明知自己拥有作出选择的能力,

使用(!+\v1)判断是否是IE浏览器

相关文章:

你感兴趣的文章:

标签云: