Странный Javascript для поведения петли - PullRequest
3 голосов
/ 21 ноября 2011

У меня есть цикл 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 с такими же параметрами работает счастливо.Какие-либо предложения?

1 Ответ

13 голосов
/ 21 ноября 2011

Я бы предположил, что first установлен таким образом, который неоднозначно можно интерпретировать как string.Таким образом, первая версия может интерпретироваться только как приращение, а вторая интерпретируется javascript как конкатенация строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...