javascript中的数字比较

时间:2014-12-21 20:49:45

标签: javascript

为什么" 11500" < " 7000"作为字符串是真的吗?

或者我是唯一一个在Chrome控制台评估时获得成功的人

我知道要得到正确答案我可以使用+" 11500" < +" 7000"

我只是想知道为什么它不像#" 5" < " 2"是错误的字符串得到解析但不是" 11500" < " 7000"

是否与二进制文件有关?

3 个答案:

答案 0 :(得分:2)

因为在JavaScript中比较字符串lexicographically"1"小于"7"(作为字符)。

+运算符将字符串转换为数字,然后按预期进行比较。

答案 1 :(得分:0)

字符串逐字符地比较其字符

这里因为“11500”的字符大于“7000”

1(49为charcode)小于7(55为charcode)= true所以系列

您可以看到1和7的字符代码,如下所示

   "1".charCodeAt() //49 
   "7".charCodeAt() //55

答案 2 :(得分:0)

" 11" < " 2" = true,因为字符' 1'在ASCII表中是49,ASCII表中的字符2是50,所以在上面的例子中,将比较第一个字母,如果它是等于,则下一个字母将相互比较,依此类推......