🚀 A Classic JavaScript Interview Question That Still Confuses Developers This question has come up in several frontend interviews I recently attended 👇 ❓ What will be the output? ``` for (var i = 0; i < 3; i++) { setTimeout(() => { console.log(i); }, 1000); } ``` 🤔 What most people expect: 0 1 2 ✅ Actual Output: 3 3 3 🔍 Why does this happen? 👉 `var` is function-scoped, not block-scoped That means: • Only one shared variable `i` exists • All callbacks refer to the same `i` • By the time `setTimeout` runs, the loop has completed • Final value of `i` becomes 3 So each callback prints 3 🧠 Key Concept This question tests: ✔ Closures ✔ Execution context ✔ Event loop behavior 💡 How to fix it? ✅ Using `let` (block scope) ``` for (let i = 0; i < 3; i++) { setTimeout(() => { console.log(i); }, 1000); } ``` ✔ Output: 0 1 2 ✅ Using IIFE (closure fix) ``` for (var i = 0; i < 3; i++) { ((index) => { setTimeout(() => { console.log(index); }, 1000); })(i); } ``` 🎯 Interview Insight This is not about syntax. It’s about understanding how JavaScript actually works under the hood. 💬 Have you been asked this in interviews? #JavaScript #FrontendDevelopment #CodingInterview #WebDevelopment #ReactJS #SoftwareDeveloper #FullStackDeveloper #TechInterview #JobSearch #Programming #LearnToCode #CareerGrowth #Developers #InterviewPreparation
JavaScript Interview Question: Understanding Closures and Execution Context
More Relevant Posts
-
🚀 A Classic JavaScript Interview Question That Still Confuses Developers This question shows up in many frontend interviews 👇 ❓ What will be the output? for (var i = 0; i < 3; i++) { setTimeout(() => { console.log(i); }, 1000); } 🤔 What Most People Expect 0 1 2 ✅ Actual Output 3 3 3 🔍 Why Does This Happen? 👉 var is function-scoped, not block-scoped That means: • There is only one shared variable i • All callbacks reference the same i • By the time setTimeout runs, the loop has finished • Final value of i becomes 3 So every callback prints 3 🧠 Key Concept This question tests: ✔ Closures ✔ Execution context ✔ Event loop behavior 💡 How to Fix It ✅ Using let (block scope) for (let i = 0; i < 3; i++) { setTimeout(() => { console.log(i); }, 1000); } ✔ Output: 0 1 2 ✅ Using IIFE (closure fix) for (var i = 0; i < 3; i++) { ((index) => { setTimeout(() => { console.log(index); }, 1000); })(i); } 🎯 Interview Insight This is not about syntax… 👉 It’s about understanding how JavaScript handles scope and closures And that’s exactly what interviewers are testing. 💬 Have you ever been asked this question in an interview? #JavaScript #FrontendDevelopment #CodingInterview #Closures #WebDevelopment #ReactJS #FrontendEngineer #Programming 👉 Follow Rahul R Jain for more real interview insights, React fundamentals, and practical frontend engineering content.
To view or add a comment, sign in
-
🚀 Day 9 – Crack Interviews Series 🔹 Topic: What is Call, Apply, and Bind in JavaScript? These methods are used to control the value of "this" in functions. 👉 They allow you to borrow functions from other objects. 💡 Real Example: const user1 = { name: "Priyanshu" }; function greet(city) { console.log(this.name + " from " + city); } // call greet.call(user1, "Delhi"); // apply greet.apply(user1, ["Delhi"]); // bind const fn = greet.bind(user1, "Delhi"); fn(); 🎯 Interview Question: Difference between call, apply, and bind? 👉 Answer: - call → arguments passed individually - apply → arguments passed as array - bind → returns a new function (does not execute immediately) 💼 Pro Tip: Useful in: - Reusing functions - Fixing "this" context - Event handlers 👇 Which one do you use the most: call, apply, or bind? 👉 Follow the Hireful Jobs channel on WhatsApp: https://lnkd.in/ghaHMBUB Telegram: https://t.me/hireful #javascript #webdevelopment #frontend #nodejs #interviewprep #coding #developers
To view or add a comment, sign in
-
JavaScript interview questions I see being asked again and again Although these are basics, they are often overlooked while preparing for more complex topics. These are some of the most commonly asked JavaScript questions across interviews, especially when the focus is on fundamentals and real-world understanding. 1. What is the event loop in JavaScript? 2. What is the difference between "var", "let", and "const"? 3. What is closure and how is it used? 4. What is hoisting in JavaScript? 5. What is the difference between "==" and "==="? 6. What are promises and how do they work? 7. What is the difference between synchronous and asynchronous code? 8. What is "this" in JavaScript and how does it behave? 9. What is the difference between "map", "filter", and "reduce"? 10. What is prototypal inheritance? 11. What are higher-order functions? 12. What is debouncing and throttling? 13. What is the difference between "null" and "undefined"? 14. What is the difference between "call", "apply", and "bind"? 15. What is a polyfill? Can you write a polyfill for "bind"? 16. What is the difference between shallow copy and deep copy? 17. What is event delegation? 18. How does "setTimeout" work under the hood? 19. What is the difference between "setTimeout" and "setImmediate"? 20. What are microtasks and macrotasks? 21. What is currying in JavaScript? 22. What is memoization? 23. What is the difference between "Object.freeze" and "Object.seal"? 24. How does garbage collection work in JavaScript? Strong fundamentals in JavaScript often make a noticeable difference in how you approach real-world problems. Which of these do you find most interesting or tricky? #javaScript #webdevelopment #programming #softwareengineering #InterviewPrep #interview
To view or add a comment, sign in
-
JavaScript interview questions I see being asked again and again Although these are basics, they are often overlooked while preparing for more complex topics. These are some of the most commonly asked JavaScript questions across interviews, especially when the focus is on fundamentals and real-world understanding. 1. What is the event loop in JavaScript? 2. What is the difference between "var", "let", and "const"? 3. What is closure and how is it used? 4. What is hoisting in JavaScript? 5. What is the difference between "==" and "==="? 6. What are promises and how do they work? 7. What is the difference between synchronous and asynchronous code? 8. What is "this" in JavaScript and how does it behave? 9. What is the difference between "map", "filter", and "reduce"? 10. What is prototypal inheritance? 11. What are higher-order functions? 12. What is debouncing and throttling? 13. What is the difference between "null" and "undefined"? 14. What is the difference between "call", "apply", and "bind"? 15. What is a polyfill? Can you write a polyfill for "bind"? 16. What is the difference between shallow copy and deep copy? 17. What is event delegation? 18. How does "setTimeout" work under the hood? 19. What is the difference between "setTimeout" and "setImmediate"? 20. What are microtasks and macrotasks? 21. What is currying in JavaScript? 22. What is memoization? 23. What is the difference between "Object.freeze" and "Object.seal"? 24. How does garbage collection work in JavaScript? Strong fundamentals in JavaScript often make a noticeable difference in how you approach real-world problems. Which of these do you find most interesting or tricky? #javaScript #webdevelopment #programming #softwareengineering #InterviewPrep #interview
To view or add a comment, sign in
-
🚀 𝗖𝗹𝗼𝘀𝘂𝗿𝗲𝘀 𝗶𝗻 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 — 𝗢𝗻𝗲 𝗼𝗳 𝘁𝗵𝗲 𝗠𝗼𝘀𝘁 𝗔𝘀𝗸𝗲𝗱 𝗜𝗻𝘁𝗲𝗿𝘃𝗶𝗲𝘄 𝗤𝘂𝗲𝘀𝘁𝗶𝗼𝗻𝘀! If you’ve ever prepared for a JavaScript interview, you’ve definitely come across closures. But do you truly understand them? In simple terms: A closure is when a function “remembers” the variables from its outer scope even after that outer function has finished executing. 𝗪𝗵𝘆 𝗶𝗻𝘁𝗲𝗿𝘃𝗶𝗲𝘄𝗲𝗿𝘀 𝗹𝗼𝘃𝗲 𝘁𝗵𝗶𝘀 𝗾𝘂𝗲𝘀𝘁𝗶𝗼𝗻? Because it tests your understanding of: • Scope • Lexical environment • Memory behavior in JavaScript Quick Example: function outer() { let count = 0; return function inner() { count++; console.log(count); }; } const counter = outer(); counter(); // 1 counter(); // 2 Here, inner() still has access to count even after outer() is executed — that’s a closure! Checkout the full video here: 👉https://lnkd.in/gBkyP54r Follow Alpna P. for more related content! 🤔 Having Doubts in technical journey? 🚀 Book 1:1 session with me : https://lnkd.in/gQfXYuQm 🚀IG: https://lnkd.in/gTQhjM_5 🚀 Get Complete React JS Interview Q&A Here: https://lnkd.in/d5Y2ku23 🚀 Get Complete JavaScript Interview Q&A Here: https://lnkd.in/d8umA-53 #JavaScript #Closures #WebDevelopment #Frontend #CodingInterview #LearnToCode #Developers #CodeWithAlpana Gaurav Patel
To view or add a comment, sign in
-
🚀 Out-of-the-Box JavaScript Interview Series – Think Beyond Basics! Tired of the same old JS interview questions like closures, promises, and hoisting? Let’s push the boundaries a bit and explore questions that actually test how you think 💡 Here are a few unconventional JavaScript interview challenges 👇 🔹 1. Why does this work? [] + [] === "" 👉 What’s happening behind the scenes with type coercion? 🔹 2. Can you break this comparison? true == '1' false == '0' 👉 Why does JS behave this way, and how would you avoid pitfalls in real apps? 🔹 3. Predict the output const obj = { a: 1, valueOf() { return 2; } }; console.log(obj + 1); 👉 Which method gets priority: valueOf or toString? 🔹 4. Infinite loop… or not? for (var i = 0; i < 3; i++) { setTimeout(() => console.log(i), 0); } 👉 Why does this print 3 3 3? How would you fix it? 🔹 5. Can you make this true? a == 1 && a == 2 && a == 3 👉 Yes, it’s possible 😏 — but should you ever do it? 💬 These questions are not about memorization. They test: ✔️ Deep understanding of JavaScript internals ✔️ Edge-case thinking ✔️ Real-world debugging mindset 🔥 If you're preparing for senior/frontend roles, this is the level that makes you stand out. Follow for more in this Out-of-the-Box Interview Series 💯 #javascript #frontenddeveloper #webdevelopment #interviewquestions #codinginterview #js #softwareengineering #programming #developers #techinterview
To view or add a comment, sign in
-
🚀 Day 5 – Crack Interviews Series 🔹 Topic: What is this keyword in JavaScript? "this" refers to the object that is executing the current function. 👉 Its value depends on how the function is called, not where it is defined. 💡 Real Example: const user = { name: "Priyanshu", greet() { console.log(this.name); } }; user.greet(); // Priyanshu const fn = user.greet; fn(); // undefined (or window in browser) 🎯 Interview Question: What is the value of "this" in arrow functions? 👉 Answer: Arrow functions don’t have their own "this". They inherit it from the surrounding (lexical) scope. 💡 Arrow Example: const obj = { name: "Dev", arrow: () => { console.log(this.name); } }; obj.arrow(); // undefined 💼 Pro Tip: Use arrow functions carefully in objects—especially in methods. 👇 "this" ever confused you in interviews? 👉 Follow the Hireful Jobs channel on WhatsApp: https://lnkd.in/ghaHMBUB Telegram: https://t.me/hireful #javascript #webdevelopment #frontend #nodejs #interviewprep #coding #developers
To view or add a comment, sign in
-
🚀 Day 10/30 – Frontend Interview Series Event Loop Explained Simply If you've ever wondered how JavaScript handles multiple tasks at once… 👉 The answer is the Event Loop --- 🧠 What is the Event Loop? JavaScript is single-threaded, meaning it can do one task at a time. But still, it handles async tasks like APIs, timers, and promises smoothly. This is possible because of the Event Loop. --- ⚙️ How it works: 1️⃣ Call Stack - Executes synchronous code - One function at a time 2️⃣ Web APIs (Browser/Node) - Handles async operations (setTimeout, fetch, DOM events) 3️⃣ Callback Queue (Macrotask Queue) - Stores callbacks from async tasks like setTimeout 4️⃣ Microtask Queue - Higher priority - Used by Promises (.then, .catch) 5️⃣ Event Loop - Continuously checks: 👉 Is Call Stack empty? 👉 If yes → moves tasks from queues to stack --- ⚡ Execution Priority: 👉 First: Synchronous Code 👉 Then: Microtasks (Promises) 👉 Then: Macrotasks (setTimeout, setInterval) --- 💡 Example: console.log("Start"); setTimeout(() => { console.log("Timeout"); }, 0); Promise.resolve().then(() => { console.log("Promise"); }); console.log("End"); ✅ Output: Start End Promise Timeout --- 🔥 Why this matters? Understanding the Event Loop helps you: ✔ Write better async code ✔ Avoid bugs ✔ Crack JavaScript interviews #JavaScript #EventLoop #WebDevelopment #Frontend #ReactJS #AsyncJS #CodingJourney #Interview
To view or add a comment, sign in
-
🚀 JavaScript Closures – Explained Simply (Interview Ready!) If you’re preparing for frontend interviews, closures is one topic you must master 💯 👉 What is Closure? A closure is when a function remembers variables from its outer scope even after the outer function has finished executing. 💡 In simple terms: Function + its lexical scope = Closure --- 🔍 Example: function outer() { let count = 0; return function inner() { count++; console.log(count); }; } const fn = outer(); fn(); // 1 fn(); // 2 fn(); // 3 👉 Even after "outer()" is executed, "inner()" still remembers "count" That’s the power of closures! --- 🔥 Real-world Uses: ✔ Data hiding (private variables) ✔ Event handlers ✔ setTimeout / async operations ✔ React hooks (useState, useEffect) --- ⚠️ Common Mistake: Closure ≠ just “function inside function” It’s about remembering the outer scope --- 🎯 One-liner for interviews: “Closure is when a function retains access to its lexical scope even after the parent function has executed.” --- 💬 Mastering closures = stronger JavaScript fundamentals + better problem-solving in React #JavaScript #Frontend #ReactJS #WebDevelopment #InterviewPrep #Closures #Coding
To view or add a comment, sign in
-
JavaScript Interview Questions – Part 1 (Must Know for Developers!) I’ve compiled a powerful set of JavaScript concepts & interview questions that every developer should master 💡 From basics to advanced topics, this covers: -- Difference between undefined vs null -- Deep understanding of DOM & DOM Manipulation -- Event Propagation (Capturing, Target, Bubbling) -- == vs === (Most asked interview question!) -- Hoisting & Execution Context -- Closures (with real examples) -- this keyword behavior (Tricky but important!) -- Higher Order Functions & Callbacks -- Custom implementations of map, filter, reduce -- Async JavaScript (Callbacks, Promises, Async/Await) 📘 This is not just theory — it includes practical examples, edge cases, and interview-focused explanations. 💬 Whether you're preparing for interviews or strengthening your fundamentals, this will help you level up your JavaScript game. 🔥 I’ll be sharing more parts soon on WhatApp Group (https://lnkd.in/dFyqKJU3) — stay tuned! 👉 Let me know in the comments: Which JavaScript topic do you find the most confusing? #JavaScript #WebDevelopment #Frontend #Programming #Coding #InterviewPrep #Developers #LearnToCode #Tech #SoftwareEngineering #MohitDecodes
To view or add a comment, sign in
Explore related topics
- Front-end Development with React
- Backend Developer Interview Questions for IT Companies
- Advanced React Interview Questions for Developers
- Tips for Coding Interview Preparation
- Mock Interviews for Coding Tests
- Common Coding Interview Mistakes to Avoid
- Common Questions in Recruiter Interviews
- Time Management in Coding Interviews
- How to Answer Common Interview Questions
- Amazon SDE1 Coding Interview Preparation for Freshers
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development