为什么JavaScript比较对字符串和数字有不同的结果?

时间:2015-07-27 22:17:32

标签: javascript

我根本无法绕过这个:

2590.00 > 2.00 //== true  
"2590.00" > "2.00" //== true  
105.00 > 2.00 //== true  
"105.00" > "2.00" //== false???  

为什么最后一个表达式返回false

4 个答案:

答案 0 :(得分:2)

"105.00" > "2.00"

正在比较字符串而不是数字

答案 1 :(得分:1)

比较两个字符串时,“2.00”将大于“105.00”,因为(按字母顺序)105.00小于2.00。

  

将字符串与数字常量进行比较时,JavaScript会处理   在进行比较时将数字作为字符串。结果如此   通常与数字比较不同。   为确保正确的结果,应将变量转换为正确的结果   比较前输入:

使用parseInt将字符串解析为整数:

javascript:alert(parseInt("105.00")>parseInt("2.00"));

答案 2 :(得分:0)

"105.00" > "2.00"

正在比较字符串"105.00""2.00"以及从'1' < '2'开始,它会返回false

答案 3 :(得分:-1)

我认为这是因为JS比较了字符串(“1”&lt;“2”等)的符号而不是数字。