JavaScript Q&A Logo
JavaScript Q&A Part of the Q&A Network
Real Questions. Clear Answers.
Ask any question about JavaScript here... and get an instant response.
Q&A Balloon Q&A Logo
Post this Question & Answer:

Why does my closure not retain the value of a loop variable in a setTimeout callback?

Asked on Jan 09, 2026

Answer

Closures in JavaScript capture variables by reference, not by value. In a loop, this can lead to unexpected behavior when using functions like "setTimeout". Here's how you can correctly capture the loop variable using "let" or an IIFE.
<!-- BEGIN COPY / PASTE -->
        for (let i = 0; i < 3; i++) {
            setTimeout(() => {
                console.log(i);
            }, 1000);
        }
        <!-- END COPY / PASTE -->
Additional Comment:
  • Using "let" in the loop declaration creates a new block scope for each iteration, capturing the current value of "i".
  • Alternatively, you can use an Immediately Invoked Function Expression (IIFE) to create a new scope for each iteration if "var" is used.
  • This ensures that each "setTimeout" callback retains the correct value of "i" when it executes.
✅ Answered with JavaScript best practices.
← Back to All Questions

Q&A Network
5,000+ Real Questions. Clear Answers.
JavaScript
Ask Questions / Get Answers about JavaScript!
AI Marketing
Ask Questions / Get Answers about AI Marketing!
MobileDev
Ask Questions / Get Answers about Mobile Developement!
Security
Ask Questions / Get Answers about Website Security!
UI/UX Design
Ask Questions / Get Answers about UI/UX Design!
Film Production
Ask Questions / Get Answers about Film Production!
IoT
Ask Questions / Get Answers about IoT!
Graphic Design
Ask Questions / Get Answers about Graphic Design!
SEO
Ask Questions / Get Answers about SEO!
Networking
Ask Questions / Get Answers about Networking!
3D Design
Ask Questions / Get Answers about 3D Design!
Web Development
Ask Questions / Get Answers about Web Development!
Cloud Computing
Ask Questions / Get Answers about Cloud Computing!
AI Coding
Ask Questions / Get Answers about AI Coding!
Performance
Ask Questions / Get Answers about Web Vitals!
Quantum
Ask Questions / Get Answers about Quantum Computing!
AI Ethics
Ask Questions / Get Answers about AI Ethics!
AI Education
Ask Questions / Get Answers about AI Education!
AI Design
Ask Questions / Get Answers about AI Design!
Video Editing
Ask Questions / Get Answers about Video Editing!
AI Business
Ask Questions / Get Answers about AI Business!
Motion Graphics
Ask Questions / Get Answers about Motion Graphics!
VR & AR
Ask Questions / Get Answers about VR & AR!
Data Science
Ask Questions / Get Answers about Data Science!
Illustration
Ask Questions / Get Answers about Illustration!
DevOps
Ask Questions / Get Answers about DevOps!
Tailwind
Ask Questions / Get Answers about Tailwind!
Creative Writing
Ask Questions / Get Answers about Creative Writing!
Sound Design
Ask Questions / Get Answers about Sound Design!
Photography
Ask Questions / Get Answers about Photography!
Robotics
Ask Questions / Get Answers about Robotics!
Web Languages
Ask Questions / Get Answers about Web Languages!
AI Writing
Ask Questions / Get Answers about AI Writing!
AI Images
Ask Questions / Get Answers about AI Images!
Chatbots
Ask Questions / Get Answers about Chatbots!
AI Video
Ask Questions / Get Answers about AI Video!
Cybersecurity
Ask Questions / Get Answers about Cybersecurity!
Monetization
Ask Questions / Get Answers about Ad & Monetization!
Analytics
Ask Questions / Get Answers about Analytics!
HTML
Ask Questions / Get Answers about HTML!
WordPress
Ask Questions / Get Answers about WordPress!
AI
Ask Questions / Get Answers about AI!
Bootstrap
Ask Questions / Get Answers about Bootstrap!
CSS
Ask Questions / Get Answers about CSS!
Web Hosting
Ask Questions / Get Answers about Hosting!
Animation
Ask Questions / Get Answers about Animation!
Podcasting
Ask Questions / Get Answers about Podcasting!
AI Audio
Ask Questions / Get Answers about AI Audio!