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