我们先看一下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'是不能被转换成数字的。
您可能对这些文章也感兴趣:- Mootools 1.2教程(14)——定时器和哈希简介
- 实验品:所见即所得在线编辑器
- Firefox下和IE下的单击和双击事件差异
- Mootools 1.2系列教程目录
- Mootools常用方法扩展(四)
- Mootools常用方法扩展(三)
- Mootools 1.2教程(21)——类(二)
- 在JavaScript应用中使用Flash来存储本地数据
- JavaScript的弱类对象及继承实现方式
- JavaScript奇怪的比较——隐式类型转换
与该文相关的评论:(我也想说几句)
Copyright © 2005-2008,Fdream All Rights Reserved
Processed in 0.1249984 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号
Processed in 0.1249984 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号
2009-2
我来说两句:
用户中心
日志分类

最新日志
统计信息





