🔹 JavaScript Hoisting — Lecture 3 | Function Hoisting vs Variable Hoisting Many developers understand variable hoisting but get confused about function hoisting. Let’s clarify it clearly 👇 ✅ Function Declaration (Fully Hoisted) greet(); function greet(){ console.log("Hello Developer"); } Output: Hello Developer ✔ Function stored completely in memory ✔ Can be called before declaration ❌ Function Expression (Not Fully Hoisted) greet(); var greet = function(){ console.log("Hello"); } Output: TypeError Why? ✔ Variable is hoisted ❌ Function is not Real MERN Project Impact Wrong understanding of hoisting causes: ❌ Undefined state values in React ❌ API execution errors ❌ Hard-to-debug production bugs Quick Summary ✔ var → hoisted with undefined ✔ let/const → hoisted but in TDZ ✔ function declaration → fully hoisted ✔ function expression → not hoisted Understanding this improves your debugging and interview performance. 🔎 Keywords: JavaScript function hoisting, JavaScript execution context, advanced JavaScript concepts, MERN stack developer #JavaScriptLearning #MERNStack #FrontendDeveloper #WebDevTips #Programming
Muhammad Afzaal Hassan’s Post
More Relevant Posts
-
⭕ Mastering JavaScript Array Methods with Practical Examples Understanding array methods like map(), filter(), reduce(), and find() is essential for writing clean and efficient JavaScript code. 🔹 1. map() – Transform Data const prices = [100, 200, 300]; const updatedPrices = prices.map(price => price + 50); console.log(updatedPrices); // [150, 250, 350] Used to transform each element and return a new array. ➖ ➖➖➖➖➖➖➖➖➖➖➖➖➖ 🔹 2. filter() – Select Data const numbers = [1, 2, 3, 4, 5, 6]; const evenNumbers = numbers.filter(num => num % 2 === 0); console.log(evenNumbers); // [2, 4, 6] Used to return elements that match a condition. ➖ ➖➖➖➖➖➖➖➖➖➖➖➖➖ 🔹 3. reduce() – Accumulate Data const cart = [500, 1000, 1500]; const totalAmount = cart.reduce((total, item) => total + item, 0); console.log(totalAmount); // 3000 Used for totals, sums, and complex calculations. ➖➖➖➖➖➖➖➖➖➖➖➖➖ 🔹 4. find() – Find First Match const users = [ { id: 1, name: "Rahul" }, { id: 2, name: "Aman" } ]; const user = users.find(userObj => userObj.id === 2); console.log(user); // { id: 2, name: "Aman" } Used to retrieve a specific item based on a condition. ✨ Strong fundamentals in JavaScript improve React components, backend logic in Node.js, and overall project performance. Continuous learning + practical implementation = Better development skills. #JavaScript #MERN #WebDevelopment #FrontendDevelopment #NodeJS #Coding #Developers
To view or add a comment, sign in
-
💡 JavaScript Array Methods Every Developer Must Know If you want to write cleaner, shorter, and more readable JavaScript code, mastering array methods is non-negotiable. Array methods not only simplify logic but also help you write functional, scalable, and interview-ready code. 🚀 Here are some essential array methods every developer should master: 🔹 Transformation & Iteration ✅ "map()" → Transform each element ✅ "forEach()" → Iterate without returning a new array ✅ "flatMap()" → Map + flatten in one step 🔹 Filtering & Searching ✅ "filter()" → Get elements based on condition ✅ "find()" → First matching element ✅ "findIndex()" → Index of matching element ✅ "some()" → Check if at least one element matches ✅ "every()" → Check if all elements match 🔹 Aggregation & Utilities ✅ "reduce()" → Powerful method for totals, grouping & complex logic ✅ "sort()" → Sort elements (numbers/strings/custom logic) ✅ "includes()" → Check if value exists ✅ "indexOf()" / "lastIndexOf()" → Find element position 🔹 Modification Methods ✅ "push()" / "pop()" → Add or remove from end ✅ "shift()" / "unshift()" → Add or remove from start ✅ "splice()" → Add/remove elements anywhere ✅ "slice()" → Copy portion of array without mutation 🔥 Why these methods matter 👉 Improve code readability 👉 Reduce loops & boilerplate logic 👉 Essential for React state updates 👉 Frequently asked in JavaScript interviews 👉 Useful in real-world data transformation As a React developer, I use these methods daily for state updates, API data transformation, and UI rendering logic. Consistency in practicing these methods can dramatically level up your problem-solving and coding confidence. 💬 Which array method do you use the most? Comment below 👇 #JavaScript #ArrayMethods #JSBasics #FrontendDevelopment #WebDevelopment #ReactJS #CodingTips #LearnInPublic
To view or add a comment, sign in
-
One of the most fundamental — yet most misunderstood — areas of JavaScript. If you don’t fully understand how functions behave under the hood, hoisting, closures, async patterns, and even React logic will feel confusing. In this post, I’ve broken down JavaScript functions from an execution-model perspective — not just syntax, but how the engine actually treats them during memory creation and runtime. Covered in this slide set: 1. Difference between Function Declarations and Function Expressions 2. How hoisting really works (definition vs undefined memory allocation) 3. Anonymous Functions and where they are actually valid 4. Named Function Expressions and their internal scope behavior 5. Parameters vs Arguments (including arity behavior in JS) 6. First-Class Functions and why functions are treated like values 7. Arrow Functions and lexical this binding Clear explanation of: 1. Why function declarations are hoisted with definition 2. Why function expressions throw “not a function” errors before assignment 3. Why anonymous functions can’t stand alone 4. How internal names in Named Function Expressions work 5. How JavaScript allows flexible argument passing 6. Why arrow functions don’t have their own this or arguments These notes are written with: 1. Interview mindset 2. Execution context clarity 3. Production-level understanding 4. Engine-level reasoning If you truly understand this topic, you automatically improve your understanding of: 1. Closures 2. Higher-Order Functions 3. Async JavaScript 4. React Hooks 5. Node.js middleware 6. Functional programming patterns Part of my JavaScript Deep Dive series — focused on building strong fundamentals, execution clarity, and real engineering-level JavaScript understanding. #JavaScript #JavaScriptFunctions #Hoisting #Closures #FirstClassFunctions #ArrowFunctions #ExecutionContext #FrontendDevelopment #BackendDevelopment #WebDevelopment #MERNStack #NextJS #NestJS #SoftwareEngineering #JavaScriptInterview #DeveloperCommunity #LearnJavaScript #alihassandevnext
To view or add a comment, sign in
-
🧠 What is Callback Hell in JavaScript? When working with asynchronous operations in JavaScript, I initially faced something called Callback Hell. 👉 Callback Hell happens when multiple async functions are nested inside each other, making the code hard to read and maintain. ❌ Example of Callback Hell getUser(userId, function(user) { getOrders(user.id, function(orders) { getPayment(orders[0].id, function(payment) { getInvoice(payment.id, function(invoice) { console.log(invoice); }); }); }); }); Problems: • Deep nesting • Hard to debug • Difficult error handling • Poor scalability This pyramid structure is often called the “Pyramid of Doom.” ✅ Modern Solution — Async/Await try { const user = await getUser(userId); const orders = await getOrders(user.id); const payment = await getPayment(orders[0].id); const invoice = await getInvoice(payment.id); console.log(invoice); } catch (error) { console.error(error); } Benefits: ✔ Cleaner structure ✔ Better readability ✔ Centralized error handling ✔ Production-friendly code 🚀 Backend Learning Understanding async flow is critical in: • API development • Database queries • File handling • Third-party integrations Clean async code = Scalable backend systems. #JavaScript #NodeJS #BackendDevelopment #FullStackDeveloper #CleanCode
To view or add a comment, sign in
-
🚨 90% of JavaScript Developers Get This Wrong (Even with 2–4 years of experience 👀) No frameworks. No async tricks. Just pure JavaScript fundamentals. 🧠 Output-Based Question (Set + Type Checking) const s = new Set(); s.add(5); console.log(s.has('5')); ❓ What will be printed? ❌ Don’t run the code 🧠 Think like the JavaScript engine A. true B. false C. error D. undefined 👇 Drop ONE option only (no explanations yet 👀) ⚠️ Why This Question Matters Most developers assume: • JavaScript auto-converts types • '5' and 5 are basically the same • Collections behave like loose equality All three assumptions can break real applications. 🎯 What This Actually Tests • How Set stores values • Strict equality (===) behavior • Primitive type comparison • Why type consistency matters in production When this mental model is unclear: • Cache checks fail • Permission checks break • Duplicate detection becomes unreliable Strong JavaScript developers don’t rely on “automatic conversion”. They understand how values are actually stored and compared. 💡 I’ll pin the breakdown after a few answers. #JavaScript #JSFundamentals #CodingInterview #WebDevelopment #FrontendDeveloper #FullStackDeveloper #DevelopersOfLinkedIn #ProgrammingTips
To view or add a comment, sign in
-
-
🚀 JavaScript Scope Explained (Global, Function & Block Scope) One of the most important concepts every JavaScript developer must understand is **Scope**. Scope defines **where a variable can be accessed in your code**. Let’s break it down 👇 1️⃣ Global Scope Variables declared outside any function are accessible everywhere. ```javascript let name = "Abhishek"; function greet() { console.log(name); } ``` 2️⃣ Function Scope (var) Variables declared with `var` inside a function are only accessible within that function. ```javascript function test() { var message = "Hello"; } console.log(message); // Error ``` 3️⃣ Block Scope (let / const) `let` and `const` are block scoped, meaning they only exist inside `{ }`. ```javascript if(true){ let age = 25; } console.log(age); // Error ``` ⚠️ Common Mistake with `var` ```javascript if(true){ var age = 25; } console.log(age); // 25 (unexpected) ``` ✔ Best Practice Use **const by default** Use **let when value changes** Avoid **var** in modern JavaScript. 💬 Interview Question: What is the **Temporal Dead Zone (TDZ)** in JavaScript? #JavaScript #WebDevelopment #Frontend #Programming #SoftwareEngineering
To view or add a comment, sign in
-
-
Understanding the JavaScript Event Loop is a game changer for writing efficient asynchronous code. Many developers use setTimeout and Promise daily — but fewer truly understand what happens behind the scenes. Here’s a quick breakdown 👇 🔹 JavaScript is single-threaded 🔹 Synchronous code runs first (Call Stack) 🔹 Then all Microtasks execute (Promises, queueMicrotask) 🔹 Then one Macrotask runs (setTimeout, setInterval, DOM events) 🔹 The loop repeats 📌 Execution Priority: Synchronous → Microtasks → Macrotasks Example: console.log(1); setTimeout(() => console.log(2), 0); Promise.resolve().then(() => console.log(3)); console.log(4); ✅ Output: 1 → 4 → 3 → 2 Understanding this helps in: ✔ Debugging async issues ✔ Optimizing performance ✔ Writing better React applications ✔ Cracking frontend interviews I’ve created a simple infographic to visually explain the entire Event Loop process. If you're preparing for JavaScript or React interviews, mastering this concept is essential. 💬 Now Your Turn 👇 What will be the output of this code? console.log("A"); setTimeout(() => console.log("B"), 0); Promise.resolve().then(() => { console.log("C"); }); console.log("D"); 👨💻 Follow for daily React, and JavaScript 👉 Md SHAAD Drop your answer in the comments 👇 Let’s see who really understands the Event Loop 🔥
To view or add a comment, sign in
-
-
🚀 **JavaScript: var vs let vs const (Every Developer Should Know This)** Understanding the difference between `var`, `let`, and `const` is one of the most important fundamentals in JavaScript. Let’s simplify it 👇 --- 🔴 **var** • Function scoped • Can be **reassigned** • Can be **redeclared** • Hoisted and initialized as `undefined` ```javascript var x = 10; x = 20; // ✅ allowed var x = 30; // ✅ allowed ``` ⚠️ Old JavaScript way. Avoid using `var` in modern code. --- 🟢 **let** • Block scoped `{ }` • Can be **reassigned** • ❌ Cannot be redeclared in the same scope • Hoisted but in **Temporal Dead Zone (TDZ)** ```javascript let y = 10; y = 20; // ✅ allowed let y = 30; // ❌ Error ``` ✔ Best for variables that will change. --- 🟣 **const** • Block scoped • ❌ Cannot be reassigned • ❌ Cannot be redeclared • Hoisted with **Temporal Dead Zone** ```javascript const z = 10; z = 20; // ❌ Error ``` ✔ Best for constants. --- 🎯 **Best Practice** ✔ Use **const by default** ✔ Use **let when value changes** ❌ Avoid **var** This makes your code **cleaner, safer, and predictable.** --- 💬 Interview Question: What is **Temporal Dead Zone (TDZ)** in JavaScript? Comment your answer 👇 --- #JavaScript #WebDevelopment #FrontendDevelopment #Coding #Programming #SoftwareEngineering #LearnToCode #DeveloperTips #JS #TechCommunity
To view or add a comment, sign in
-
-
But I can still change const even though it is immutable, Const a = [] a.push(7) Above code is completely valid. Can anyone explain that .. comment below 👇
Immediate Joiner - Software Developer | Full Stack Web Developer | NODE JS | REACT JS | PHP | JS | GITHUB | PYTHON | DJANGO | REST API | MYSQL | MONGO DB | FLASK | WORDPRESS
🚀 **JavaScript: var vs let vs const (Every Developer Should Know This)** Understanding the difference between `var`, `let`, and `const` is one of the most important fundamentals in JavaScript. Let’s simplify it 👇 --- 🔴 **var** • Function scoped • Can be **reassigned** • Can be **redeclared** • Hoisted and initialized as `undefined` ```javascript var x = 10; x = 20; // ✅ allowed var x = 30; // ✅ allowed ``` ⚠️ Old JavaScript way. Avoid using `var` in modern code. --- 🟢 **let** • Block scoped `{ }` • Can be **reassigned** • ❌ Cannot be redeclared in the same scope • Hoisted but in **Temporal Dead Zone (TDZ)** ```javascript let y = 10; y = 20; // ✅ allowed let y = 30; // ❌ Error ``` ✔ Best for variables that will change. --- 🟣 **const** • Block scoped • ❌ Cannot be reassigned • ❌ Cannot be redeclared • Hoisted with **Temporal Dead Zone** ```javascript const z = 10; z = 20; // ❌ Error ``` ✔ Best for constants. --- 🎯 **Best Practice** ✔ Use **const by default** ✔ Use **let when value changes** ❌ Avoid **var** This makes your code **cleaner, safer, and predictable.** --- 💬 Interview Question: What is **Temporal Dead Zone (TDZ)** in JavaScript? Comment your answer 👇 --- #JavaScript #WebDevelopment #FrontendDevelopment #Coding #Programming #SoftwareEngineering #LearnToCode #DeveloperTips #JS #TechCommunity
To view or add a comment, sign in
-
-
🚀 Understanding "var" Scope in JavaScript In JavaScript, there are mainly three types of scope: 1️⃣ Global Scope – Variables declared outside any function are accessible everywhere in the program. 2️⃣ Function Scope – Variables declared inside a function can only be used inside that function. 3️⃣ Block Scope – Variables declared inside blocks like "{ }" (for example in "if", "for", etc.) are only accessible inside that block. However, the important thing to remember is: 👉 The "var" keyword only follows Global Scope and Function Scope. ❌ It does NOT follow Block Scope. Let’s look at a simple example: if (true) { var message = "Hello World"; } console.log(message); // Output: Hello World Even though "message" is declared inside the "if" block, we can still access it outside the block. This happens because "var" ignores block scope. Now look at a function example: function test() { var number = 10; console.log(number); // 10 } console.log(number); // Error: number is not defined Here, "number" is declared inside the function, so it cannot be accessed outside the function. ✅ Key Takeaway: - "var" → Global Scope + Function Scope - "var" ❌ does not support Block Scope That’s why modern JavaScript developers prefer "let" and "const", because they properly support block scope. #JavaScript #WebDevelopment #Programming #BackendDevelopment
To view or add a comment, sign in
More from this author
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