如果在'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)
因为:"98"<="99"(字符串比较)
"100"<="102"
但是"99">"100"
转换仅在调用j ++时出现,但对于从未发生过的第二种情况(99-100),因为循环条件失败.