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如何精确地对数字字符串进行数字比较.
解决方法:
Javascript通过字符值比较字符串,而不管字符串看起来像数字.
您可以在spec的11.8.5节第4点中看到这一点.
‘a’< 'b'和'ab'< 'ac都是真的.