1

Кто может объяснить, почему выводится 10 раз число 10, а не по порядку. Я знаю, что таймер сначала добавляется в очередь, а потом не знаю, что происходит

    for (var i=0; i<10; i++) {
     setTimeout('alert(i)', 1000);
    }
Uranus
  • 3,236
DivMan
  • 891

1 Answers1

1

Все дело в том что функции, добавленные в setTimeout, попадают в конец очереди выполнения. Сначала выполнится тело цикла и вся логика и только в конце будет вызвана функция alert(i). Естественно что к тому времени цикл будет закончен и переменная i будет содержать 10

Рекомендую к прочтению данную статью