JavaScript奇怪的比较——隐式类型转换
作者:Fdream 来源:Fdream博客 时间:2009-02-15 13:06:00
我们先看一下JavaScript中关系运算符的类型转换规则:
关系运算符(<、>、<=、>=)
试图将 expression1 和 expression2 都转换为数字。
如果两表达式均为字符串,则按字典序进行字符串比较。
如果其中一个表达式为 NaN,返回 false。
负零等于正零。
负无穷小于包括其本身在内的任何数。
正无穷大于包括其本身在内的任何数。
所以很容易理解下面这样的比较:
1 < NaN: false
1 >= NaN: false
'a' < 1: false
'a' >= 1: false但是下面的就很诡异了:
1 < '2a': false
1 >= '2a': false
'2a' < 1: false
'2a' >= 1: false按照一般的理解,这里的'2a'应该会被转换成2,可是实际上是被转换成了NaN,why?字符串转换为数字,有parseInt()、parseFloat()和Number(),在这里使用的就是Number转换。在用Number()进行转换时,'2a'是不能被转换成数字的。
标签:类型转换,JavaScript,运算符
0
投稿
猜你喜欢
小白讲座:在win下mysql备份恢复命令概括
2009-09-05 09:43:00
闲聊html和body标签
2009-02-21 10:50:00
SQL Server各种日期计算方法
2008-09-11 21:47:00
asp 动态生成rss(不成生xml文件)代码
2011-04-04 11:17:00
妙用Dreamweaver MX共享WPS Office文件
2010-09-05 21:18:00
mysql 忘记root密码
2010-12-14 14:50:00
彻底解决MySql在UTF8字符集下乱码问题
2011-06-02 12:02:00
符合网站标准的图片切换代码(天极软件)
2008-02-20 08:23:00
web脚本程序攻击的防范
2007-10-18 13:29:00
如何实现文件上传并自动归类功能?
2010-05-24 18:37:00
利用SQL语句对不同数据库进行高效果分页
2008-11-28 14:44:00
CSS处理斜角导航条的一个例子
2007-08-27 12:38:00
MySQL 视图,第1349号错误
2008-05-18 13:04:00
ASP幻灯片
2009-09-04 18:05:00
是时候不用考虑基于字体大小(em)的设计了
2009-10-24 13:25:00
如何调用SQL Server的存储过程?
2009-11-15 20:15:00
jQuery实现同一点击,两个不同链接,指向两个不同的iframe
2010-06-21 10:52:00
在线Ajax载入动画生成工具 - Loadinfo
2008-02-18 13:34:00
做了CDN加速的ASP网站获取用户真实IP程序
2011-02-16 10:59:00
一个较复杂的字符串截取函数
2009-11-02 10:45:00