TGViewer
Руслан Куянец | Reactify Руслан Куянец | Reactify @reactify_it · 6.42K subscribers
Post #479 394
Разбор задач

С использованием let:

1. Цикл for запускает 10 таймаутов.
2. Каждый setTimeout "запоминает" свое значение i, потому что let создает новую переменную на каждой итерации.
3. После завершения цикла таймауты начинают выполняться, выводя значения от 0 до 9.

for (let i = 0; i < 10; i++) {
setTimeout(function() {
console.log(i);
}, 100);
}


С использованием var:

1. Цикл for также запускает 10 таймаутов.
2. Все setTimeout ссылаются на одну и ту же переменную i, так как var создает одну область видимости для всего цикла.
3. К моменту начала выполнения таймаутов, значение i стало 10 (цикл уже завершил свою работу). Поэтому все таймауты выводят 10.

for (var i = 0; i < 10; i++) {
setTimeout(function() {
console.log(i);
}, 100);
}


С let каждый таймаут "запоминает" свое уникальное значение i, в то время как с var все таймауты ссылаются на одну и ту же переменную, значение которой становится 10 к моменту выполнения таймаутов.

Необходимо помнить, что setTimeout является асинхронной функцией. При её вызове задача ставится в очередь задач, которая будет обработана event loop. Это означает, что все итерации цикла завершатся раньше, чем начнёт выполняться любой из setTimeout. Сначала выполнится весь синхронный код, и только после этого event loop начнёт выполнять задачи из очереди, включая наши setTimeout.

#JavaScript #обучающийПост #loop #var #let
  • 👍 8
  • 🔥 2
More from @reactify_it
  1. Oct 8, 2026Последний месяц жестко марафонил :) С утра до вечера, без выходных. Решил наконец подвести…
  2. Oct 2, 2026Что вообще для меня значит ИТ-АДАПТАЦИЯ? Это — РАБОТА ЛЮБОЙ ЦЕНОЙ. Сейчас такое время, ког…
  3. Oct 1, 2026А тем временем цены растут. Бесплатный ChatGPT, во-первых, как будто отупел, во-вторых, ли…
  4. Sep 30, 2026Ребята, если у вас уже есть опыт, но вы чувствуете, что он выглядит «непродающим» в резюме…
  5. Sep 29, 2026👩‍💻 ВСЯ инфраструктура за 30 минут: Kubernetes, ArgoCD, Grafana, CI/CD https://www.youtu…
  6. Sep 28, 2026В общем, что-то такое получилось 😁 Превью сделано нейронкой, но буду переделывать с помощ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →