Javascript数字比较运算符如何处理字符串?

时间:2011-11-18 03:04:11

标签: javascript string comparison operators numeric

var i = ['5000','35000'];
alert((i[0] < i[1])?'well duh!':'fuzzy math?');
alert((Number(i[0]) < Number(i[1]))?'well duh!':'fuzzy math?');

这里发生了什么?在第一个警报中,文本字符串“5000”评估为小于“35000”。我假设Javascript在数字比较字符串时使用了Number(),但显然情况并非如此。只是好奇Javascript默认情况下如何处理数字字符串比较。

1 个答案:

答案 0 :(得分:4)

Javascript按字符值比较字符串,字符串是否与数字相似。

您可以在spec第11.8.5节第4点中看到这一点。

'a' < 'b''ab' < 'ac都是正确的。