在进行比较时js会先将两边的类型自动转成一致再对比。
1. 纯数字之间的比较
2 < 5 //true; 直接进行比较。
2. 纯数字与数字型字符串之间比较
js会优先选择将字符串转成数字
2 < '5' // true
3. 数字和其它字符串比较
数字和其它字符串进行比较时,js会将其它字符串转换为数字,但是由于a不能转换为数字,得到的结构为NAN,所以比较的结果一直是false
image.png
2 < 'a' // false
4. 数字型字符串之间比较
这种比较为ASCII码比较,依次取每个字符,字符转为ASCII码进行比较,ASCII码先大的即为大;因为第一个字符1比2小所以后面就不用考虑了
image.png
'11' < '2' ; //true
5. 其他字符串之间比较
字符串比较为ASCII码比较
'a'.charCodeAt()
97
'b'.charCodeAt()
98
console.log('a'>'b');//false
6. ASCII码与UNICODE
ASCII(American Standard Code for Information Interchange:美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用来表示英文字符的一种编码规范。每个ASCII字符占用1 个字节,因此,ASCII 编码可以表示的最大字符数是255(00H—FFH)。它是现今最通用的信息交换标准,并等同于国际标准ISO/IEC 646。
大写字母A-Z对应的ASCII码值是65-90
小写字母a-z对应的ASCII码值是97-122
Unicode与ASCII一样也是一种字符编码方法,它占用两个字节(0000H—FFFFH),容纳65536 个字符,
这完全可以容纳全世界所有语言文字的编码。在Unicode 里,所有的字符都按一个字符来处理, 它们都有一个唯一的Unicode 码。
7. API
parseInt(str,radix)
可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
charCodeAt()
charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。
string.charCodeAt(index)
参数
描述
index
必需。表示字符串中某个位置的数字,即字符在字符串中的下标。