Most of us write JavaScript every day - but do we actually know what happens when our code runs? 🤔 Here's a quick breakdown: 🔹 Step 1 - Global Execution Context Before a single line runs, JS allocates memory for all variables and functions. This is where hoisting happens. 🔹 Step 2 - Execution Phase Now the code actually runs - values get assigned, functions get invoked, line by line. 🔹 Step 3 - Local Execution Context Every time a function is called, JS creates a brand new execution context just for it - with its own local memory. Once the function is done? It's destroyed. And behind all of this? The Call Stack 📚 It keeps track of every function using LIFO (Last In, First Out). The most recently called function runs first, and when it's done, execution returns to where it left off. JavaScript is single-threaded - meaning it does one thing at a time, in order. Understanding this is the key to debugging async code, closures, and so much more. Save this post if you found it helpful. ✌ #JavaScript #WebDevelopment #Programming #SoftwareEngineer #JSFundamentals #Developer
JavaScript Execution Phases: Hoisting, Execution, and Call Stack
More Relevant Posts
-
🚀 JavaScript Concepts Series – Day 3 / 30 👀 Let's Revise the Basics🧐 Understanding the difference between var, let, and const is a fundamental concept in JavaScript. Choosing the right variable declaration helps prevent bugs and makes your code more predictable. 🔹 var Function scoped Can be redeclared Can be reassigned Hoisted (initialized with undefined) 🔹 let Block scoped Cannot be redeclared in the same scope Can be reassigned Hoisted but stays in Temporal Dead Zone (TDZ) until initialized 🔹 const Block scoped Cannot be redeclared Cannot be reassigned Must be initialized during declaration 💡 Key Insight var → Old way of declaring variables (function scoped) let → Use when the value may change const → Use when the value should not change Using let and const helps write safer and more maintainable JavaScript code. More JavaScript concepts coming soon. 🚀 #javascript #js #webdevelopment #frontenddeveloper #coding #programming #softwaredeveloper #developers #learnjavascript #javascriptdeveloper #codinglife #devcommunity #webdev #reactjs #mernstack #codingjourney #codeeveryday #techlearning #developerlife #100daysofcode
To view or add a comment, sign in
-
-
Most developers use JavaScript every day. Very few understand what actually happens behind the scenes. One of the most important fundamentals is this: 𝐉𝐚𝐯𝐚𝐒𝐜𝐫𝐢𝐩𝐭 𝐢𝐬 𝐬𝐢𝐧𝐠𝐥𝐞-𝐭𝐡𝐫𝐞𝐚𝐝𝐞𝐝. It can execute only one task at a time. Yet somehow it still handles network requests, timers, and user interactions smoothly. So what makes this possible? First, every function call enters the 𝐂𝐚𝐥𝐥 𝐒𝐭𝐚𝐜𝐤. This is where JavaScript executes code. If the stack is busy, nothing else can run. But asynchronous tasks like `setTimeout`, `fetch`, and DOM events don’t run inside the JavaScript engine itself. They are handled by 𝐁𝐫𝐨𝐰𝐬𝐞𝐫 𝐖𝐞𝐛 𝐀𝐏𝐈𝐬. Once those operations finish, their callbacks move into the 𝐂𝐚𝐥𝐥𝐛𝐚𝐜𝐤 𝐐𝐮𝐞𝐮𝐞. Then the 𝐄𝐯𝐞𝐧𝐭 𝐋𝐨𝐨𝐩 steps in. It constantly checks whether the Call Stack is empty. When it is, tasks from the queue are pushed into the stack for execution. That simple cycle is what enables asynchronous behavior—even in a single-threaded language. Understanding this mental model makes development much easier: * Debug async issues by visualizing the call stack and queue * Use `async/await` confidently once you understand promises * Avoid blocking operations that freeze the event loop Once this concept clicks, JavaScript suddenly feels far less mysterious. When did the 𝐄𝐯𝐞𝐧𝐭 𝐋𝐨𝐨𝐩 finally make sense to you? #JavaScript #WebDevelopment #FrontendEngineering #EventLoop #AsyncProgramming #SoftwareEngineering #ProgrammingFundamentals #MERNStack
To view or add a comment, sign in
-
-
✅ The 3 Types of Execution Context in JavaScript. 1️⃣ Global Execution Context (GEC) - Created when the JavaScript file first runs. - There is only one global execution context. - It creates: - Global object (window in browser) - this (which refers to window in browser) - Stays in the call stack until program finishes. 2️⃣ Function Execution Context (FEC) - Created every time a function is invoked. - Each function call gets its own execution context. - Pushed to the call stack. - Removed after function finishes. 3️⃣ Eval Execution Context (Rare / Advanced) - Created when code runs inside eval(). - Very rarely used in real production. - Avoided due to security and performance issues. Cheers, Binay 🙏 #javscript #developement #softwareengineering #frontend #buildinpublic #JSInternals #Programming #TechCareers #TechInterview
To view or add a comment, sign in
-
💡 Most developers write JavaScript every day… But very few know how JavaScript actually runs behind the scenes. Today I learned about the JavaScript V8 Engine and it completely changed how I think about JS execution. Here’s the simple idea: ⚡ JavaScript runs inside an engine called V8 And it mainly works using three components: 🧠 Memory Heap Stores variables and objects in memory. 📚 Call Stack Keeps track of which function is currently executing. 🧹 Garbage Collector Automatically removes unused memory to keep applications efficient. When this simple code runs: var a = 1078698; var b = 20986; function multiplyFn(x, y) { const result = x * y; return result; } var c = multiplyFn(a, b); Here’s what happens internally: 1️⃣ Variables are stored in the Memory Heap 2️⃣ The function gets pushed into the Call Stack 3️⃣ The function executes and returns the result 4️⃣ The Garbage Collector cleans unused memory Understanding how JavaScript works internally helps developers write better and more optimized code. 🚀 Still learning something new about JavaScript every day. ❓ What other JavaScript internals do you think every developer should learn? #javascript #webdevelopment #frontenddeveloper #v8engine #programming #learninginpublic
To view or add a comment, sign in
-
-
JavaScript Execution Demystified: The 3 Phases That Make Your Code Run 🚀.............. Before a single line executes, JavaScript performs a carefully orchestrated three‑phase journey. Parsing Phase scans your code for syntax errors and builds an Abstract Syntax Tree (AST)—if there's a typo, execution never starts. Creation Phase (memory allocation) hoists functions entirely, initializes var with undefined, and registers let/const in the Temporal Dead Zone (TDZ) while setting up scope chains and this. Finally, Execution Phase runs code line‑by‑line, assigns values, invokes functions, and hands off asynchronous tasks to the event loop. This three‑stage process repeats for every function call, with the call stack tracking execution and the event loop managing async operations. Master these phases to truly understand hoisting, closures, and why let throws errors before declaration! #javascript #webdev #coding #programming #executioncontext #parsing #hoisting #eventloop #js #frontend #backend #developer #tech #softwareengineering
To view or add a comment, sign in
-
-
In JavaScript, the super keyword plays a crucial role in class inheritance. It allows child classes to access and reuse logic from parent classes, whether it’s constructors or methods. Using super() ensures proper initialization, while super.method() enables clean code reuse. Understanding this concept is key to writing scalable and maintainable object-oriented JavaScript.
To view or add a comment, sign in
-
-
🚀 Understanding Hoisting in JavaScript Many developers hear that JavaScript moves variables and functions to the top, but what actually happens behind the scenes? In JavaScript, hoisting occurs during the compilation phase, before the code executes. The JavaScript engine first scans the entire code and allocates memory for variables and functions. This means: • var variables are hoisted and initialized with undefined • let and const are also hoisted but remain in the Temporal Dead Zone (TDZ) until their declaration line is reached • Function declarations are fully hoisted, allowing them to be called before they appear in the code Example: console.log(a); var a = 10; Output: undefined Internally JavaScript treats it like this: var a; console.log(a); a = 10; ⚠️ Important: JavaScript does not physically move code to the top. During compilation the engine simply registers declarations in memory before execution begins. Understanding hoisting helps developers better grasp execution context, scope, and the JavaScript engine's behavior. #JavaScript #WebDevelopment #Frontend #Programming #Coding
To view or add a comment, sign in
-
JAVASCRIPT NOTES — PART 4 (Core Concepts) This is where JavaScript stops feeling simple. Understanding execution context, closures, and prototypes changes how you read and write code. This post covers: • How execution context actually works • Memory creation & scope chain • Closures and preserved state • Prototype chain & inheritance • Constructor functions vs classes Once these are clear, the language becomes predictable instead of confusing. 📌 Save this for deep revision. #JavaScript #FrontendDeveloper #WebDevelopment #InterviewPrep #LearningInPublic #Closures #Prototypes #Consistency
To view or add a comment, sign in
-
🚀 5 Smart Ways to Create Functions in JavaScript – Pick Your Style! 💻 One challenge, multiple solutions – that's JS magic! ✨ Here's a beginner-friendly breakdown of function styles to make your code clean and powerful. 🔹Function Declaration- Classic & hoisted – use anywhere, even before it's defined! Perfect for core utils. 🔹 Function Expression- Assign to a variable for flexibility. No hoisting, so call it after defining. Great for modules! 🔹 Arrow Functions- Super short syntax: () => {}. No 'this' binding – ideal for callbacks & quick logic. Modern fave! 🚀 🔹 IIFE (Immediately Invoked)- (function() { ... })() – runs right away, keeps globals clean. One-time setup king! 🛡️ 🔹 Function Constructor- new Function('a', 'b', 'return a+b') – dynamic creation at runtime. Advanced & powerful! ⚡ Different vibes, same goal: readable, efficient code! Which one's your go-to? Drop it below 👇 Like if helpful, share with a dev friend! 👥 #JavaScript #JSFunctions #WebDevelopment #FrontendDev #CodingTips #LearnToCode #Programming #Developers #CodeNewbie #100DaysOfCode #DevCommunity #ReactJS #WebDev #CleanCode #TechTips #JavaScriptTips #BeginnerCoding #DeveloperLife 💪✨
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