3 回答

TA贡献1900条经验 获得超5个赞
字符串按字典顺序进行比较。即逐个字符,直到它们不相等或没有要比较的字符为止。“ 11”的首字符小于“ 3”的首字符。
> '11' < '3'
true
> '31' < '3'
false
> '31' < '32'
true
> '31' < '30'
false
如果我们使用字母,则因为b不小于a,abc不小于aaa,但是由于c小于d,abc小于abd。
> 'abc' < 'aaa'
false
> 'abc' < 'abd'
true
您可以将字符串显式转换为数字:
> +'11' < '3'
false

TA贡献1807条经验 获得超9个赞
默认情况下,JavaScript将根据每个字符的序号值比较两个字符串;很像strcmp()在C语言中的工作方式。
为了使您的比较工作有效,您可以将任一侧强制转换为数字,以告诉解释器您进行数字比较的意图:
Number('11') < '3' // false
+'11' < '3' // false, using + to coerce '11' to a numeric
'11' < Number('3') // false
'11' < +'3' // false

TA贡献1827条经验 获得超8个赞
按每个字符进行比较,结果如下false:
if ('41' < '3') alert('true');
由于4不小于3。因此,本质上,您的比较可以归结为:
if ('1' < '3') alert('true'); // true
添加回答
举报