一尘不染

为什么字符串“ 11”小于字符串“ 3”?

javascript

if ('11' < '3') alert('true');

显然,它不是根据长度来比较它们,而是通过编码来比较它们。但是,我不知道它是如何工作的。我需要一些解释:-)


阅读 429

收藏
2020-05-01

共1个答案

一尘不染

字符串按字典顺序进行比较。即逐个字符,直到它们不相等或没有要比较的字符为止。“11”的首字符小于“ 3”的首字符。

> '11' < '3'
true
> '31' < '3'
false
> '31' < '32'
true
> '31' < '30'
false

如果我们使用字母,则因为b不小于aabc不小于aaa,但是由于c小于dabc小于abd

> 'abc' < 'aaa'
false
> 'abc' < 'abd'
true

您可以将字符串显式转换为数字:

> +'11' < '3'
false
2020-05-01