在最近codeReview中发现有部分同事直接使用字符串去判断,这是很不严谨的写法, 让我们看看如何在js中去比较字符串的大小?
字符串是按每个字符的ASCII码比较
- 如果字符串长度为0的情况下,就可以直接比较它们的大小,
'' == '' // true
'' === '' // true
'' > '' or '' < '' // false
复制代码
- 如果字符串长度不为0的,字符串可以换成ASCII码,然后去比较其大小
const a = '19'
const b = '111'
a 与 b 按照字符逐个进行比较,直到分出大小为止。
1. a[0] => '1', b[0] => '1'
2. a[1] => '9', b[1] => '1'
'9'.charCodeAt() // 字符串9 转ASCII码 为 57
'1'.charCodeAt() // 字符串1 转ASCII码 为 49
所以这里 a > b
复制代码
如果这里直接去判断的话,肯定是得不到你想要的结果。
不过可以利用parseInt
orparseFloat
方法去转换为数字,然后再去作比较。