博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js判别过滤出ie8、ie7
阅读量:7170 次
发布时间:2019-06-29

本文共 465 字,大约阅读时间需要 1 分钟。

最近看到一种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.

 

 

转载于:https://www.cnblogs.com/outside/p/3781746.html

你可能感兴趣的文章
CentOS 7 学习(四)Git配置(一)
查看>>
【转载】架构师速成-如何高效编程
查看>>
c语言中文件的操作
查看>>
Not enough free space on disks! linux
查看>>
Git学习攻略
查看>>
css布局
查看>>
Java之匿名类讲解
查看>>
转:Vim实战指南(一):基础编辑命令
查看>>
java新知识系列 五
查看>>
数组B - 我想我需要一艘船屋
查看>>
elasticsearch1.0 升级2.2的数据备份和恢复
查看>>
苹果推送服务器端证书配置.pem生成
查看>>
《将博客搬至CSDN》
查看>>
[转载]步进电机原理介绍与基于STM32的SPWM驱动步进电机,使用软件实现电机细分...
查看>>
Windows下安装Redis服务
查看>>
序列化和反序列化的几种方式(DataContractSerializer)(二)
查看>>
比赛注意事项
查看>>
uva-10905-贪心
查看>>
(转)Google Code SVN密码的解决之道(2010-11-14 20:36:51)转载▼
查看>>
tmux使用笔记
查看>>