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
投稿
猜你喜欢
MYSQL大表加索引的实现
2024-01-16 03:12:36
防注入asp过滤sql特殊字符函数
2007-10-23 17:50:00
Python中的三目(元)运算符详解
2023-12-06 01:20:49
使用Python对Access读写操作
2021-01-07 04:20:36
MySQL 数据库锁的实现
2024-01-13 01:30:29
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2023-05-31 17:41:29
一列保存多个ID(将多个用逗号隔开的ID转换成用逗号隔开的名称)
2012-08-21 10:37:37
Python单链表的简单实现方法
2021-08-14 01:58:33
ASP,PHP与.NET伪造HTTP-REFERER方法及防止伪造REFERER的方法
2010-03-12 12:40:00
Pandas对每个分组应用apply函数的实现
2022-01-26 04:02:00
javascript中var与let、const的区别详解
2024-05-09 15:07:32
python3 tkinter实现添加图片和文本
2022-08-07 04:28:17
一文详解前端进阶之IntersectionObserver
2024-05-03 15:07:48
Python实现利用最大公约数求三个正整数的最小公倍数示例
2022-12-30 09:04:16
SQLServer地址搜索性能优化
2024-01-14 10:48:42
python类别数据数字化LabelEncoder VS OneHotEncoder区别
2023-10-12 07:46:46
快速掌握和使用Flyway的详细教程
2023-03-05 15:24:24
python实战之德州扑克第二步-判断牌型
2021-03-19 12:37:28
Python淘宝秒杀的脚本实现
2022-12-08 01:46:21
Python将脚本程序转变为可执行程序的实现
2022-03-02 16:30:49