JavaScript强制:控制台与脚本

时间:2015-03-23 14:54:46

标签: javascript conditional coercion

今天,我遇到了一些比较奇怪的事情。请考虑以下代码(我用它来将范围滑块与输入元素同步):

// val = "50"
// other_val = 100  
if( val > other_val ){
    console.log(val + '>' + other_val); // => 50 > 100
    console.log( val > other_val); // => true
    $input_max.val( other_val );
}

这是怎么发生的?当我输入

"50" > 100 

进入我的控制台(Chrome& FireFox),它说错了,这就是我的预期。我使用 parseInt()修复了结果错误,但我仍然不知道为什么发生这种情况。另外,我不知道为什么我不能在这个剧本之外重现它。

有什么想法吗? :)

干杯!

更新:

正如Bergi所指出的,它是“50”>“100”,而不是“50”> 100 即可。非常感谢你的想法。现在,我真正的问题似乎是:

为什么这会返回true:

"50">"100" // => true

1 个答案:

答案 0 :(得分:1)

您编辑的问题的答案是,当您比较字符串时,它会从字符串的开头逐字符进行比较。字符5比1大“。”