字符串的javascript比较

时间:2013-06-05 22:38:14

标签: javascript string

我有以下脚本

document.write("12" < "2");

返回true。有什么理由吗?文档说javascript在数字上比较字符串但是,我不知道“12”是如何小于“2”。

4 个答案:

答案 0 :(得分:10)

JavaScript逐个字符地比较字符串,直到其中一个字符不同。

1小于2,因此在第一个字符后停止比较。

答案 1 :(得分:4)

我相信它正在进行字典比较 - 字符串1中的第一个字符是'1',它小于字符串2的第一个字符,即'2'。有关词典顺序的更多信息,请访问:http://en.wikipedia.org/wiki/Lexicographical_order

答案 2 :(得分:3)

这是因为"12"的第一个字符是1,它出现在"2"之前;和JavaScript字符串比较是词法/字母顺序,而不是数字。虽然它看起来是部分数字,但由于12之前排序。

但是,您可以简单地将数字作为数字进行比较

document.write(parseFloat("12") < parseFloat("2"));

答案 3 :(得分:-2)

尝试:

document.write(parseInt("12") < parseInt("2"));