The only JavaScript function that comes with a "Pause" button. ⏯️ In JavaScript, the golden rule of functions is usually "Run-to-Completion." Once a function starts, it doesn't stop until it returns or finishes. 𝐄𝐧𝐭𝐞𝐫 𝐭𝐡𝐞 𝐆𝐞𝐧𝐞𝐫𝐚𝐭𝐨𝐫 𝐅𝐮𝐧𝐜𝐭𝐢𝐨𝐧. 🤯 It completely breaks the rule. It is a special type of function that can be paused in the middle of execution and resumed later from exactly where it left off. 𝐓𝐡𝐞 𝐌𝐚𝐠𝐢𝐜 𝐒𝐲𝐧𝐭𝐚𝐱: 1️⃣ `function*`: The asterisk tells JS this isn't a normal function. 2️⃣ `yield`: This keyword acts like a pause button. It spits out a value and freezes the function's state. 3️⃣ `.next()`: This is the play button. Call it to resume the function until it hits the next `yield`. 𝐖𝐡𝐲 𝐢𝐬 𝐭𝐡𝐢𝐬 𝐮𝐬𝐞𝐟𝐮𝐥? (𝐋𝐚𝐳𝐲 𝐄𝐯𝐚𝐥𝐮𝐚𝐭𝐢𝐨𝐧) Generators allow for 𝐋𝐚𝐳𝐲 𝐄𝐯𝐚𝐥𝐮𝐚𝐭𝐢𝐨𝐧. You don't have to calculate a list of 1 million items at once (crashing your memory). You can generate them one by one, only when you actually need them. It’s perfect for infinite streams, ID generators, or defining complex state machines. Check out the syntax breakdown below! 👇 Have you used Generators in production (maybe with Redux Saga)? #JavaScript #WebDevelopment #CodingPatterns #AdvancedJS #SoftwareEngineering #Frontend
JavaScript Generators: Pause and Resume Execution
More Relevant Posts
-
Most developers think closures are some kind of JavaScript “magic”… But the real truth is simpler—and more dangerous. Because if you don’t understand closures: Your counters break Your loops behave strangely Your async code gives weird results And you won’t even know why. Closures are behind: React hooks Event handlers Private variables And many interview questions In Part 7 of the JavaScript Confusion Series, I break closures down into a simple mental model you won’t forget. No jargon. No textbook definitions. Just clear logic and visuals. 👉 Read it here: https://lnkd.in/g4MMy83u 💬 Comment “CLOSURE” and I’ll send you the next part. 🔖 Save this for interviews. 🔁 Share with a developer who still finds closures confusing. #javascript #webdevelopment #frontend #programming #reactjs #learnjavascript #softwareengineering #coding #devcommunity
To view or add a comment, sign in
-
🤯 JavaScript Currying: Why does this function keep returning functions? Ever seen code like this and thought “Who hurt you?” 👇 add(1)(2)(3) Why not just write add(1, 2, 3) like a normal human? 😅 Welcome to Currying in JavaScript 👇 🧠 What is Currying? Currying is a functional programming technique where a function that takes multiple arguments is broken into a chain of functions, each taking one argument at a time. const add = a => b => c => a + b + c; add(1)(2)(3); // 6 Each function remembers the previous value using closures. Yes, JavaScript never forgets… 🤔 Why should you care? Because currying helps you write: ✅ Reusable code ✅ Cleaner & readable logic ✅ Partial application (fix some arguments now, pass the rest later const multiply = a => b => a * b; const double = multiply(2); double(5); // 10 const triple = multiply(3); triple(5); // 15 Write once, reuse everywhere 🔥 ⚛️ Where do we actually use this? If you’re a React / Redux developer, you’re already using currying 👀 ⚠️ Currying ≠ Partial Application Quick reminder: ⚛️ Currying → f(a)(b)(c) ⚛️ Partial application → pre-fill some arguments and reuse the function Different tools, same productivity boost 🚀 Middleware, event handlers, utility functions… it’s everywhere. #ReactJS #JavaScript #WebDevelopment #Frontend #MERN #ReactHooks #CleanCode #JavaScript #WebDevelopment #FrontendMagic #CodeWithFun #TechExplainedSimply #mernstack #mern #react #js #JavaScript #WebDevelopment #CodingHumor #FrontendDevelopment #TechEducation #ProgrammingFun #LearnToCode #CodeNewbie #DeveloperCommunity
To view or add a comment, sign in
-
🚀 5 Tricky JavaScript Output Questions (Closures & Scope) Let’s test your JS fundamentals 👇 Try to guess the output before checking answers. 1️⃣ for (var i = 0; i < 3; i++) { setTimeout(() => console.log(i), 1000); } 2️⃣ let a = 10; (function () { console.log(a); let a = 20; })(); 3️⃣ function foo() { console.log(x); var x = 10; } foo(); 4️⃣ const obj = { a: 10, getA() { return this.a; } }; const fn = obj.getA; console.log(fn()); 5️⃣ console.log(typeof typeof 1); Answers below 👇 1️⃣ 3 3 3 (var is function-scoped, same reference) 2️⃣ ReferenceError (Temporal Dead Zone for `let`) 3️⃣ undefined (var hoisting without initialization) 4️⃣ undefined (`this` is lost when function is detached) 5️⃣ "string" (typeof 1 → "number", typeof "number" → "string") If you can explain *why*, you’re interview-ready 💯 #javascript #frontend #interviewprep #webdevelopment
To view or add a comment, sign in
-
JavaScript Event Loop – Simple Explanation JavaScript is single-threaded. It can do only one task at a time. So how does it handle async tasks like: setTimeout fetch Promises 👉 Answer: Event Loop 🧠 Step by Step: 1️⃣ Synchronous code runs in the Call Stack 2️⃣ Async tasks go to Web APIs 3️⃣ When completed: Promises → Microtask Queue (High Priority) setTimeout → Callback Queue (Low Priority) 4️⃣ Event Loop checks: If Call Stack is empty → First runs Microtasks → Then runs Callback tasks Example: console.log("Start"); setTimeout(() => console.log("Timeout"), 0); Promise.resolve().then(() => console.log("Promise")); console.log("End"); ✅ Output: Start End Promise Timeout Because Promises run before setTimeout 🔥 Understanding Event Loop = Strong JavaScript foundation 💪 #JavaScript #Frontend #ReactJS #WebDevelopment #CodingInterview
To view or add a comment, sign in
-
-
⚡ JavaScript Event Loop — The Concept That Makes JS Feel “Fast.” Ever wondered how JavaScript handles multiple tasks even though it’s single-threaded? Here are the key things to understand: 🧩 Call Stack Runs your code line by line (one task at a time). 🌐 Web APIs (Browser) Handles slow tasks like setTimeout, fetch, DOM events, etc. 📥 Callback Queue (Task Queue) Stores callbacks waiting to run after the stack is empty. ⚡ Job Queue (Microtask Queue) Promises go here — and it runs before the callback queue ✅ 🔁 Event Loop Continuously checks if the call stack is empty, then pushes queued tasks back to execution. Understanding this helps you: ✅ predict async output order ✅ fix “why is this logging first?” confusion ✅ write better Promise/async-await code ✅ understand sequence vs parallel vs race I wrote a beginner-friendly breakdown with examples. Link in the comments 👇 #JavaScript #WebDevelopment #Frontend #Programming #LearnJavaScript #SoftwareEngineering #Async #EventLoop
To view or add a comment, sign in
-
-
🚀 Stop Guessing How JavaScript Works: The Event Loop Explained Ever wondered why JavaScript is "single-threaded" but can still handle thousands of concurrent tasks without breaking a sweat? The secret isn't magic; it's the Event Loop. 🎡 If you want to master asynchronous programming, you have to understand how these four pieces play together: 1. The Call Stack 📚 This is where the engine tracks what function is currently running. It’s a LIFO (Last In, First Out) structure. If the stack is busy, nothing else happens. 2. Web APIs 🌐 When you call a setTimeout, a fetch request, or a DOM event, JavaScript "hands off" these tasks to the browser (or Node.js). This keeps the main thread free. 3. The Callback Queue (Task Queue) 📥 Once a Web API finishes its job, the callback (the code you want to run) moves here to wait for its turn. 4. The Event Loop 🔄 The "Gatekeeper." It has one simple job: Look at the Call Stack. If the Stack is empty, take the first task from the Queue and push it onto the Stack. 💡 Why does this matter? Have you ever seen a UI freeze during a heavy calculation? That’s because the Call Stack is clogged, and the Event Loop can't push the "render" or "click" tasks from the queue. Pro Tip: Always remember that Microtasks (like Promises) have a "VIP pass." They get executed before the standard Macrotasks (like setTimeout), even if the timer has already expired! #JavaScript #WebDevelopment #ProgrammingTips #Frontend #SoftwareEngineering #EventLoop
To view or add a comment, sign in
-
Why const isn't actually "constant" in JavaScript 🤯 If you're new to JS, you might think const means the value can never change. But try this: const user = { name: 'Alice' }; user.name = 'Bob'; console.log(user.name); // Output: Bob Wait, what? Why didn't it throw an error? Here’s the deal: const creates an immutable binding, not an immutable value. It prevents you from reassigning the variable to a new memory address. It does NOT prevent you from changing the properties of an object or array. Key Takeaway: If you want a truly unchangeable object, use Object.freeze(). What’s a JS quirk that tripped you up when you first started? Let’s discuss below! 👇 feel free to reach me out for any career mentoring Naveen .G.R | CareerByteCode #JavaScript #WebDevelopment #CodingTips #Frontend #SoftwareEngineering
To view or add a comment, sign in
-
-
🧠 99% of JavaScript devs get this event loop question wrong 👀 (Even seniors pause before answering) No frameworks. No libraries. Just how JavaScript actually schedules work. 🧩 Output-Based Question (Event Loop: sync vs microtasks vs macrotasks) console.log("start"); setTimeout(() => { console.log("timeout"); }, 0); Promise.resolve().then(() => { console.log("promise"); }); (async function () { console.log("async"); })(); console.log("end"); ❓ What will be printed — in the correct order? ❌ Don’t run the code 🧠 Think like the JavaScript engine A. start → async → end → promise → timeout B. start → end → async → promise → timeout C. start → async → promise → end → timeout D. start → promise → async → end → timeout 👇 Drop your answer in the comments (no cheating 😄) Why this question matters This tests whether you truly understand: • synchronous execution • the event loop • microtasks vs macrotasks • why Promise.then beats setTimeout(0) • async IIFEs vs promises Many developers “use” async code every day — but few understand when it actually runs. Good JavaScript developers don’t memorize outputs. They understand how the engine thinks. 💡 I’ll pin the full explanation after a few answers. #JavaScript #EventLoop #AsyncJavaScript #WebDevelopment #ProgrammingFundamentals #InterviewPrep #MCQ #DeveloperTips #CodeQuality
To view or add a comment, sign in
-
-
🤔 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗤𝘂𝗶𝗿𝗸 𝗔𝗹𝗲𝗿𝘁: 𝗪𝗵𝘆 𝗱𝗼𝗲𝘀 𝘵𝘺𝘱𝘦𝘰𝘧 𝘯𝘶𝘭𝘭 === "𝘰𝘣𝘫𝘦𝘤𝘵"? Ever wondered why JavaScript thinks null is an object? It's not a feature—it's a bug from 1995 that we're stuck with forever! 𝗧𝗵𝗲 𝗢𝗿𝗶𝗴𝗶𝗻 𝗦𝘁𝗼𝗿𝘆: In JS v1, values had type tags. Objects got 000, and null (the NULL pointer) was all zeros. Boom—misidentified as an object. 𝗪𝗵𝘆 𝗖𝗮𝗻'𝘁 𝗪𝗲 𝗙𝗶𝘅 𝗜𝘁? 𝗦𝗶𝗺𝗽𝗹𝗲: backwards compatibility. In 2011, they tried fixing it by making 𝘵𝘺𝘱𝘦𝘰𝘧 𝘯𝘶𝘭𝘭 === "𝘯𝘶𝘭𝘭". 𝗥𝗲𝘀𝘂𝗹𝘁? Mass breakage across the web. 🔥 𝗠𝗶𝗹𝗹𝗶𝗼𝗻𝘀 𝗼𝗳 𝗰𝗼𝗱𝗲𝗯𝗮𝘀𝗲𝘀 𝗵𝗮𝘃𝗲: 𝘫𝘢𝘷𝘢𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘧 (𝘵𝘺𝘱𝘦𝘰𝘧 𝘷𝘢𝘭𝘶𝘦 === "𝘰𝘣𝘫𝘦𝘤𝘵" && 𝘷𝘢𝘭𝘶𝘦 !== 𝘯𝘶𝘭𝘭) { // 𝘩𝘢𝘯𝘥𝘭𝘦 𝘰𝘣𝘫𝘦𝘤𝘵𝘴 } Remove that && 𝘷𝘢𝘭𝘶𝘦 !== 𝘯𝘶𝘭𝘭 check, and chaos ensues. 𝗧𝗵𝗲 𝗟𝗲𝘀𝘀𝗼𝗻: Sometimes, the web's greatest strength (never breaking old sites) is also its biggest constraint. We live with legacy bugs because stability > theoretical perfection. What's your favorite JavaScript quirk? 👇 #JavaScript #WebDevelopment #Programming #DeveloperLife #TechTrivia #TechInnovation
To view or add a comment, sign in
-
-
7 Type of Loops in JavaScript 🔄🤔 Most developers stick to for or forEach, but JavaScript offers 7 different ways to iterate over data. Choosing the wrong one can lead to messy code or performance bottlenecks. The Loop Cheat Sheet: ✅ for loop: The classic, manual control loop. ✅ while loop: Runs as long as a condition is true. ✅ do...while: Guarantees the code runs at least once. ✅ for...in: Best for iterating over object keys. ✅ for...of: The modern standard for arrays and strings.. ✅ forEach(): Cleaner syntax for arrays, but no break or continue. ✅ map(): Transformations that return a new array. Swipe left to master them all! ⬅️ 💡 Found this helpful? * Follow for premium web development insights. 🚀 * Repost to help your network stay updated. 🔁 * Comment which loop is your personal favorite! 👇 #javascript #webdevelopment #coding #frontend #loops #programming #codewithalamin #webdeveloper #js #codingtips
To view or add a comment, sign in
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