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
都是真的。
关于javascript - Javascript 数字比较运算符究竟如何处理字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8177238/