奇怪的Javascript For循环行为

3

我有一个如下的for循环:

for (var i=first; i<=last; i++)
{
    $("#markers").append("<div class='marker'>"+i+"</div>");
}

first被设置为2001,last被设置为2010。这很好用。问题在于当我将其更改为:

for (var i=first; i<=last; i+=1)
{
     $("#markers").append("<div class='marker'>"+i+"</div>");
}

(注意最后一次声明不同)除了i++以外的任何变化都会导致无限循环。很奇怪,因为带有相同参数的 jsFiddle 却可以正常工作。有什么建议吗?

它似乎在Chrome上运行正常。你尝试过哪个浏览器? - David Laberge
2
好奇:为什么你要使用 i+=1 而不是 i++ 呢?看起来它比必要的工作要多。 - Jemaclus
实际上我需要执行 i+=some_variable,我只是为了问题简化了它。 - Dormouse
1个回答

13

我猜测first是以一种模糊的方式被解释为字符串。因此,第一个版本只能被解释为递增,但是第二个版本被JavaScript解释为字符串连接。


1
这是否意味着这就是“答案”? :-) - drdwilcox
它确实起作用了,但是在10分钟限制到期后我不在电脑前。这不是我的第一次。不过还是谢谢你的好答案! - Dormouse
谢谢。我从您的声誉中就知道了。我只是在享受我的第一个好答案。 - drdwilcox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接