dr.Brain

doctor Brain

мир глазами веб-разработчика

JavaScript: цикл и цикл событий

объясняем, как работает setTimeout внутри цикла в JavaScript

dr.Brain

время чтения 1 мин.

Photo by Denys Nevozhai on Unsplash

Какой результат будет получен, если воспользоваться функцией setTimeout() внутри цикла for?

Разберем следующий пример:

function runner(){
  for(var i = 0; i < 3; i++){
    setTimeout(()=> console.log(i),0);
  }
}

runner()

Результат:

3
3
3

Благодаря setTimeout(), вывод переменной i, к которой мы обращаемся внутри цикла for, каждый раз откладывается на начало следующего цикла событий (Event Loop). Именно поэтому i сначала достигает своего максимального значения в текущем цикле событий, а уже в начале следующего цикла событий несколько раз выводится в консоль.


Спасибо за внимание.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.