Javascript数字比较表现奇怪

时间:2017-08-22 14:00:06

标签: javascript

我有一段javascript表现得非常奇怪。它应该是基于整数过滤项目。

在它应该过滤的4个范围中的3个中效果很好,但在最大的范围内失败。

代码:

if ((range_low <= itemLeadtime) && (range_high > itemLeadtime)) {
    console.log(range_low +" <= " + itemLeadtime +" && "+ range_high +" > " + itemLeadtime)
    ...
}

在奇怪的行为范围内,它会记录:

120 <= 40 && 9000 > 40

为什么?

1 个答案:

答案 0 :(得分:2)

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

var range_low = '120',
    range_high = '9000',
    itemLeadtime = '40';
    
if ((range_low <= itemLeadtime) && (range_high > itemLeadtime)) {
    console.log(range_low +" <= " + itemLeadtime +" && "+ range_high +" > " + itemLeadtime);
}

带数字

var range_low = 120,
    range_high = 9000,
    itemLeadtime = 40;
    
if ((range_low <= itemLeadtime) && (range_high > itemLeadtime)) {
    console.log(range_low +" <= " + itemLeadtime +" && "+ range_high +" > " + itemLeadtime);
} else {
    console.log('else');
}