Javascript数值比较行为异常

Javascript数值比较行为异常,javascript,Javascript,我有一段javascript代码,它的行为非常奇怪。它应该是基于整数过滤项目 它在应该过滤的4个范围中的3个范围内工作良好,但在其中最大的范围内失败 守则: if ((range_low <= itemLeadtime) && (range_high > itemLeadtime)) { console.log(range_low +" <= " + itemLeadtime +" && "+ range_high +" > " +

我有一段javascript代码,它的行为非常奇怪。它应该是基于整数过滤项目

它在应该过滤的4个范围中的3个范围内工作良好,但在其中最大的范围内失败

守则:

if ((range_low <= itemLeadtime) && (range_high > itemLeadtime)) {
    console.log(range_low +" <= " + itemLeadtime +" && "+ range_high +" > " + itemLeadtime)
    ...
}
if((范围\低项交付周期)){
console.log(范围\u low+“”+itemLeadtime)
...
}
在其行为异常的范围内,它记录:

120 <= 40 && 9000 > 40
120 40


为什么?

看起来,您使用的是字符串而不是数字

var范围_低='120',
范围_高='9000',
itemLeadtime='40';
if((范围\低项交付周期)){
console.log(范围低+“”+itemLeadtime);

}
你想让
|
吗?试着做:
控制台.日志(范围类型低,项目类型提前期,范围类型高)
并给我们回复。我相信不是所有的都是整数,而是字符串。在这种情况下,使用
parseInt
函数将字符串解析为整数。@PatrickEvans当它“失败”时,它会打印错误,因此它会进入if。至少相关:
console.log(typeof range\u low,typeof itemLeadtime,typeof range\u high)
生成
字符串。这就是答案。