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

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都是真的.

上一篇:Python中多个张量的一般乘积


下一篇:python-取消numpy数组操作(包括标量)