JS中的字符串比较

本文详细介绍了JavaScript中比较运算符在不同类型之间进行比较时的隐式转换规则。从纯数字比较到字符串之间的比较,包括数字与数字型字符串、纯数字与非数字字符串、数字型字符串与数字型字符串以及字符串与字符串的比较,揭示了ASCII码在字符串比较中的作用。了解这些规则对于理解JavaScript中的比较操作至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果比较的类型不同,首先会进行隐式转换,就是将两边的类型自动转成一致再对比。

比较首先分为以下几种情况:

1.纯数字和纯数字比较

直接依据数学运算,没啥说的。

2.纯数字和数字型字符串比较
(30 > '20'); //true

数字型字符串会转成纯数字再与前面的纯数字比较,即 20 与 30 相比谁大?

3.纯数字和非数字字符串比较
('a' > 96); //false

这种情况下,js 会将字符串转成数字,js 转数字的方法:parseInt(‘a’),如果解析不到数字,则将返回一个 NaN 的值。parseInt() 函数可解析一个字符串,并返回一个整数。具体用法请戳我。所以’a’转换的结果永远是 NaN,所以结果永远是 false(即 ‘a’ < 96 //false)。

4.数字型字符串和数字型字符串比较
('5' >= '12'); //true
('250' < '30');  //true

这种比较为 ASCII 码比较,依次取每个字符,字符转为 ASCII 码进行比较,ASCII 码先大的即为大;因为第一个字符 5 比 1 大,3 比 2 大,所以后面就不用考虑了。

5.字符串和字符串比较
('d' > 'ab') //true

大小比较是依次取字符,字符转 ASCII 码,ASCII 码先大的即为大;d 的 ASCII 码为 100,而 a 的 ascii 码为 97,所以为 true。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值