为什么 `"12:34" < "123:45"` 等于 `false`?

Rod*_*nto -1 javascript string comparison lexicographic

有人可以解释为什么'12:34' < '123:45'会这样false吗?

console.log('12:34' < '123:45' ? 'true' : 'false')
Run Code Online (Sandbox Code Playgroud)

OmG*_*OmG 6

由于的ASCII码3:。我们知道字符串之间的比较会通过字典规则来完成。因此,由于第一个差异位于两个字符串的第三个位置,因此3和的 ASCII 代码:将决定比较的结果。由于 的 ASCII 代码:大于3,因此您会看到 false。下面请看它们的 ASCII 码。

console.log(":".charCodeAt(0));
console.log("3".charCodeAt(0));
Run Code Online (Sandbox Code Playgroud)