Every function you call in JavaScript gets pushed onto a structure called the call stack. That's how JS knows where to go back. Whatever sits on top of the stack is where execution is right now. When the function returns, it gets popped off - and the item below it is back on top, telling JS exactly where to return to. Without this, calling a function from the middle of another function would leave JS completely lost. There would be no "go back to where you were." One side effect: the call stack has limited space. If a function calls itself infinitely with no stopping condition, you get a stack overflow. The name makes perfect sense once you know what it actually is. Next: JS borrows the browser's timer and network - but the browser doesn't hand results back through the call stack. How does it communicate? #JavaScript #WebDevelopment #Programming #SoftwareEngineering
More Relevant Posts
-
When I first heard "JavaScript is single-threaded," I thought it was a flaw someone was apologizing for. It's not. It's the most important thing to understand about the language. Single-threaded means JS can only do one thing at a time. One line runs, finishes, then the next begins. This makes JS behavior completely predictable - you always know the order things happen, with no two threads fighting over the same variable. The difficulty of async code doesn't come from JS doing multiple things at once. It comes from JS waiting while the browser does work in the background, and needing a controlled way to let that result back in. Once I understood this, async stopped feeling like black magic and started making sense. Next post: what actually happens when a function runs - the call stack. #JavaScript #WebDevelopment #Programming #SoftwareEngineering
To view or add a comment, sign in
-
I used to believe that JavaScript operated with some hidden “thread algorithm” behind the scenes. However, I learned that it doesn't function that way. JavaScript is single-threaded, yet it effectively manages multiple tasks simultaneously through the event loop, not threads. Here's a simplified breakdown: - There’s one main worker (the call stack). - There’s a waiting area (task queues). - There’s a loop that continuously checks what to run next. The core flow looks like this: while (true) { run sync code first if nothing is running: run all microtasks (Promises) then pick one macrotask (timers, I/O) } What surprised me the most is the priority system: Promises always execute before timers. Even a setTimeout(..., 0) has to wait its turn. As for the “threading” aspect? It exists, but not in the way you might expect. The engine (like V8) runs your code in a single thread, while the environment (browser or Node.js) utilizes multiple threads for tasks like network calls and timers. In essence, JavaScript doesn’t schedule threads; it schedules tasks. This shift in perspective can significantly change your understanding of asynchronous code. #javascript #learning #webdevelopment #programming #codewithishwar
To view or add a comment, sign in
-
TypeScript 7.0 Beta just dropped and this is NOT a regular version bump 🔥 The entire compiler has been rewritten from JavaScript → Go. The result? \~10x faster builds. That's not a typo. Here's what you need to know: → The compiler now runs parsing, type-checking, and emitting in parallel → New --checkers flag lets you control how many type-checker workers spin up \(default: 4\) → New --builders flag parallelizes project reference builds — huge for monorepos → strict is now true by default \(finally!\) → target: es5 and moduleResolution: node are gone for good → You install it via @typescript/native-preview@beta and use tsgo instead of tsc Think of it like this — your old TypeScript compiler was a single chef cooking a 10-course meal one dish at a time. TS7 is a kitchen with 4 chefs working simultaneously, each handling different courses 🍳 The best part? It's not a rewrite from scratch. They methodically ported the existing codebase to Go, so the type-checking logic is structurally identical to TS 6.0. Same rules, way faster engine. Companies like Bloomberg, Canva, Figma, Google, Vercel, and Notion have already been testing it on multi-million line codebases. Beta label, but production-ready confidence. VS Code extension is already out too. The stable release is expected within 2 months. If you haven't tried it yet — now's the time 🚀 What's the first thing you'd test TS7 on — your main codebase or a side project first? #TypeScript #TypeScript7 #WebDev #JavaScript #Programming #GoLang #DevTools
To view or add a comment, sign in
-
setTimeout does nothing inside the JavaScript engine. It's a label. A facade. When you call it, JS hands the work off to a browser feature - the actual timer lives outside JavaScript entirely. The browser runs it independently while JS continues on to the next line. All the features we think of as "JavaScript" - timers, network requests, DOM interactions - are actually browser APIs. JS just has labels that trigger them. This is how JS avoids blocking. It doesn't wait. It delegates. The result comes back later, through a controlled channel called the callback queue. Next: the event loop - the single mechanism that controls when deferred code is allowed back into JavaScript. #JavaScript #WebDevelopment #Programming #SoftwareEngineering
To view or add a comment, sign in
-
Confused between var, let, and const? Here's all you need to know. 👇 Most JavaScript developers use all three — but few know exactly when and why. Here's a quick breakdown: ⚠️ var → Function-scoped, hoists as undefined, can be re-declared. Avoid it in modern code. 🔁 let → Block-scoped, re-assignable. Use it when values change. 🔒 const → Block-scoped, immutable binding. Your default choice. 💡 TDZ (Temporal Dead Zone) — let and const are hoisted but can't be accessed before their declaration line. That's a feature, not a bug. 💥One rule of thumb: Always start with const. Switch to let only when you need to reassign. Never touch var. Save this for your next code review. 🔖 #JavaScript #WebDevelopment #Frontend #JS #Programming #100DaysOfCode #CodeTips #SoftwareEngineering
To view or add a comment, sign in
-
-
JavaScript Loops: When to use what? 🔁 Loops let you run code multiple times without repeating yourself. Two basics you must know: 🔹 for loop – when you know the number of iterations ```js for (let i = 0; i < 5; i++) { console.log(i); // 0 1 2 3 4 } ``` 🔹 while loop – when you don't know the exact count, only the condition ```js let i = 0; while (i < 5) { console.log(i); i++; } ``` ✅ Key difference: · for = known iterations (e.g., loop through array length) · while = condition-based (e.g., keep prompting until valid input) Master loops, and you master control flow 💪 Which loop do you use more often? Drop a comment 👇 #JavaScript #CodingBasics #WebDevelopment #JS #ProgrammingTips #LearnToCode
To view or add a comment, sign in
-
-
𝐓𝐡𝐞 𝐜𝐚𝐥𝐥 𝐬𝐭𝐚𝐜𝐤 𝐡𝐚𝐬 𝐧𝐨 𝐩𝐚𝐭𝐢𝐞𝐧𝐜𝐞. 𝐈𝐭 𝐞𝐱𝐞𝐜𝐮𝐭𝐞𝐬 𝐞𝐯𝐞𝐫𝐲𝐭𝐡𝐢𝐧𝐠 — 𝐢𝐧𝐬𝐭𝐚𝐧𝐭𝐥𝐲, 𝐫𝐮𝐭𝐡𝐥𝐞𝐬𝐬𝐥𝐲, 𝐢𝐧 𝐨𝐫𝐝𝐞𝐫. So what happens when you need a 𝐝𝐞𝐥𝐚𝐲? That's where I hit a wall. If JavaScript is single-threaded and the call stack never pauses — how does '𝐬𝐞𝐭𝐓𝐢𝐦𝐞𝐨𝐮𝐭' even work? Turns out, it doesn't live in JavaScript at all. 𝐖𝐞𝐛 𝐀𝐏𝐈𝐬 — 𝐬𝐞𝐭𝐓𝐢𝐦𝐞𝐨𝐮𝐭, 𝐟𝐞𝐭𝐜𝐡( ), 𝐃𝐎𝐌 𝐞𝐯𝐞𝐧𝐭𝐬, 𝐥𝐨𝐜𝐚𝐥𝐒𝐭𝐨𝐫𝐚𝐠𝐞 — are gifts from the browser, not the language. The browser quietly hands them off, runs them in the background, then places the result into a 𝐂𝐚𝐥𝐥𝐛𝐚𝐜𝐤 𝐐𝐮𝐞𝐮𝐞 . And here's the elegant part: The 𝐄𝐯𝐞𝐧𝐭 𝐋𝐨𝐨𝐩 sits there, watching. The moment the call stack is empty, it picks up the waiting callback functions and pushes it in. That's it. No magic. Just a disciplined handoff between three moving parts. JavaScript doesn't wait — but the browser builds the patience "around" it. 𝐓𝐚𝐤𝐞𝐚𝐰𝐚𝐲𝐬 : → 𝐓𝐡𝐞 𝐜𝐚𝐥𝐥 𝐬𝐭𝐚𝐜𝐤 𝐞𝐱𝐞𝐜𝐮𝐭𝐞𝐬 𝐟𝐚𝐬𝐭. 𝐍𝐞𝐯𝐞𝐫 𝐚𝐬𝐬𝐮𝐦𝐞 𝐢𝐭 𝐰𝐚𝐢𝐭𝐬. → 𝐖𝐞𝐛 𝐀𝐏𝐈𝐬 𝐚𝐫𝐞 𝐛𝐫𝐨𝐰𝐬𝐞𝐫-𝐩𝐨𝐰𝐞𝐫𝐞𝐝, 𝐚𝐜𝐜𝐞𝐬𝐬𝐞𝐝 𝐯𝐢𝐚 𝐭𝐡𝐞 𝐠𝐥𝐨𝐛𝐚𝐥 "𝐰𝐢𝐧𝐝𝐨𝐰" 𝐨𝐛𝐣𝐞𝐜𝐭. → 𝐓𝐡𝐞 𝐞𝐯𝐞𝐧𝐭 𝐥𝐨𝐨𝐩 𝐨𝐧𝐥𝐲 𝐚𝐜𝐭𝐬 𝐰𝐡𝐞𝐧 𝐭𝐡𝐞 𝐜𝐚𝐥𝐥 𝐬𝐭𝐚𝐜𝐤 𝐢𝐬 𝐜𝐥𝐞𝐚𝐫. #JavaScript #SoftwareEngineering #DeveloperJourney #LearningInPublic #Programming #TechCommunity #WebDevelopment
To view or add a comment, sign in
-
-
Constructor in JavaScript. 🚀 In JavaScript, a Constructor is a special function used to create and initialize objects. Constructors help you create objects with the same structure, but different values. It's usually used with the class or function syntax. I've put a class Constructor code in this image. Key Points: - The constructor sets up the object's properties. - this refers to the current object. - When creating an object using new, the constructor is called automatically. (Try to learn the concept, not the language.) Follow → Zahidul Haque 💻 #Constructor #Class #Function #JS #JavaScript #ES6 #Code #Coding #Programming #SoftwareDevelopment #Development #Engineering
To view or add a comment, sign in
-
-
🚀 𝐃𝐚𝐲 𝟓/𝟏𝟓 𝐨𝐟 𝐌𝐲 𝐉𝐚𝐯𝐚𝐒𝐜𝐫𝐢𝐩𝐭 𝐋𝐞𝐚𝐫𝐧𝐢𝐧𝐠 𝐒𝐞𝐫𝐢𝐞𝐬 Today I learned about Loops in JavaScript 🔁 👉 Loops are used to run a block of code multiple times. 📌 Types of Loops: 1️⃣ for loop for (let i = 0; i < 5; i++) { console.log(i); } 2️⃣ while loop let i = 0; while (i < 5) { console.log(i); i++; } 👉 Both loops do the same thing, but the use depends on the situation. 📌 Key Difference: for loop → when you know how many times to run while loop → when condition-based looping is needed Loops make coding faster and more efficient 💻✨ 💬 Question: Which loop do you find easier — for or while? Let’s learn together 🚀 #JavaScript #WebDevelopment #LearningInPublic #Day5 #FrontendDevelopment
To view or add a comment, sign in
-
-
JS Pop Quiz: Did we just overwrite the Admin?! Let’s see who really understands JavaScript memory allocation! 👨💻👩💻 Look at the code snippet from @codewithsarir. We have a user1 object. We assign it to user2, and then change user2's role to 'Guest'. Question: What does console.log(user1.role) actually print? A) 'Admin' (Because we only changed user2) B) 'Guest' (Because they share the same reference) C) undefined D) It throws a TypeError Hint: Think about how JavaScript handles Objects versus Primitive types like strings. Does = make a copy, or just point to the same address? 🤔 Drop your guess in the comments before you test it in your IDE! 👇 Hashtags: #JavaScript #CodingQuiz #WebDesign #ProgrammerLife #Developers #LearnToCode #JS #Frontend #creators #codinglife #programmer
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