为什么字符串与int之间的转换不能按预期工作,可被10整除的数字?

0 javascript

如果在'for'循环中使用parseInt,它适用于所有情况.但在此示例中,对于99-100或999-1000等情况,它无法正常工作.这里发生了什么?隐式转换是错误的吗?

function buggy10000(value)
{
    var r = value.split("-");
    var len=r.length;
    var j;
    if(len==2)
    {
        console.log("For in RANGE " + r[0]+"<-->"+r[1]);
        for(j=r[0];j<=r[1];j++)
        {
            console.log(j);
        }
    }

}

buggy10000("98-99");
buggy10000("99-100");  //for not working as expected
buggy10000("100-102");
Run Code Online (Sandbox Code Playgroud)

mih*_*hai 6

因为:"98"<="99"(字符串比较)

"100"<="102"

但是"99">"100"

转换仅在调用j ++时出现,但对于从未发生过的第二种情况(99-100),因为循环条件失败.