🤔 Вопрос с собеседования
Что выведет этот код?
❤️ — 0 1 2
🔥 — 3 3 3
👍 — 0 0 0
👇 Правильный ответ (нажми, чтобы прочитать):
🔘 Будет:
3
3
3
var имеет function scope, поэтому все три callback замыкаются на одну и ту же переменную i. К моменту выполнения setTimeout цикл уже закончился, а i равен 3.
🔘 Если заменить var на let:
for (let i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 0);
}
получим 0 1 2, потому что let создаёт отдельную binding-переменную для каждой итерации.
📍 Навигация: [Вакансии]
🐸 Библиотека фронтендера
#career_merge
Post #8302
1.82K

- 🔥 52
- ❤ 5
- 👍 2
- 🌚 2
- 🥰 1