为什么字符串"11"小于字符串"3"?

jil*_*ego 24 javascript string comparison

if ('11' < '3') alert('true');
Run Code Online (Sandbox Code Playgroud)

很明显,它不是按长度比较它们而是通过编码来比较它们.但是,我不明白它是如何工作的.我需要一些解释:-)

Que*_*tin 44

字符串逐个字符进行比较,直到它们不相等或没有任何字符可供比较.'11'的第一个字符小于'3'的第一个字符.

> '11' < '3'
true
> '31' < '3'
false
> '31' < '32'
true
> '31' < '30'
false
Run Code Online (Sandbox Code Playgroud)

如果我们使用字母然后,因为b不小于a,abc不小于aaa,但是因为c小于d,abc小于abd.

> 'abc' < 'aaa'
false
> 'abc' < 'abd'
true
Run Code Online (Sandbox Code Playgroud)