𝐉𝐚𝐯𝐚 𝐝𝐞𝐯𝐬: "𝐈 𝐡𝐚𝐯𝐞 𝟓 𝐞𝐥𝐞𝐠𝐚𝐧𝐭 𝐦𝐞𝐭𝐡𝐨𝐝𝐬 𝐰𝐢𝐭𝐡 𝐭𝐡𝐞 𝐬𝐚𝐦𝐞 𝐧𝐚𝐦𝐞." 𝐉𝐚𝐯𝐚𝐒𝐜𝐫𝐢𝐩𝐭 𝐝𝐞𝐯𝐬: "𝐈 𝐡𝐚𝐯𝐞 𝟏 𝐦𝐞𝐭𝐡𝐨𝐝 𝐚𝐧𝐝 𝐚 𝐭𝐞𝐫𝐫𝐢𝐟𝐲𝐢𝐧𝐠 𝐰𝐚𝐥𝐥 𝐨𝐟 𝐢𝐟-𝐬𝐭𝐚𝐭𝐞𝐦𝐞𝐧𝐭𝐬." 🧱 Let's talk about Overriding vs. Overloading, and how JavaScript handles (or completely ignores) them. 🥊 𝐌𝐞𝐭𝐡𝐨𝐝 𝐎𝐯𝐞𝐫𝐫𝐢𝐝𝐢𝐧𝐠 (𝐓𝐡𝐞 𝐂𝐡𝐢𝐥𝐝 𝐑𝐞𝐛𝐞𝐥𝐥𝐢𝐨𝐧) This is when a child class inherits from a parent but decides it knows better. You redefine the exact same method with the exact same name. 𝑇ℎ𝑒 𝑅𝑒𝑎𝑙𝑖𝑡𝑦: It’s great until you realize you actually needed the parent's original logic too, so you awkwardly sprinkle in a `super.doSomething()` at the last second to avoid breaking the entire application. 🤹 𝐌𝐞𝐭𝐡𝐨𝐝 𝐎𝐯𝐞𝐫𝐥𝐨𝐚𝐝𝐢𝐧𝐠 (𝐓𝐡𝐞 𝐉𝐚𝐯𝐚𝐒𝐜𝐫𝐢𝐩𝐭 𝐈𝐥𝐥𝐮𝐬𝐢𝐨𝐧) In strictly typed languages, you can create multiple methods with the exact same name as long as they take different parameters. 𝑇ℎ𝑒 𝐽𝑆 𝑅𝑒𝑎𝑙𝑖𝑡𝑦: JavaScript literally does not care. If you write two functions with the same name, the bottom one just violently overwrites the top one. 𝑇ℎ𝑒 𝑊𝑜𝑟𝑘𝑎𝑟𝑜𝑢𝑛𝑑: We have to fake it. We create one massive function, pass in `...args`, and write 15 `if/else` blocks checking the argument lengths and `typeof` just to figure out what the frontend is actually trying to send us. JavaScript doesn't give you overloading natively; it gives you trust issues and a giant switch statement. 𝐂𝐨𝐧𝐟𝐞𝐬𝐬𝐢𝐨𝐧 𝐭𝐢𝐦𝐞: 𝐖𝐡𝐚𝐭'𝐬 𝐭𝐡𝐞 𝐮𝐠𝐥𝐢𝐞𝐬𝐭 "𝐬𝐢𝐦𝐮𝐥𝐚𝐭𝐞𝐝 𝐨𝐯𝐞𝐫𝐥𝐨𝐚𝐝𝐢𝐧𝐠" 𝐟𝐮𝐧𝐜𝐭𝐢𝐨𝐧 𝐲𝐨𝐮'𝐯𝐞 𝐞𝐯𝐞𝐫 𝐡𝐚𝐝 𝐭𝐨 𝐰𝐫𝐢𝐭𝐞 𝐭𝐨 𝐦𝐚𝐤𝐞 𝐚 𝐟𝐞𝐚𝐭𝐮𝐫𝐞 𝐰𝐨𝐫𝐤? 𝐃𝐫𝐨𝐩 𝐲𝐨𝐮𝐫 𝐜𝐫𝐢𝐦𝐞𝐬 𝐢𝐧 𝐭𝐡𝐞 𝐜𝐨𝐦𝐦𝐞𝐧𝐭𝐬. 👇 #JavaScript #WebDevelopment #SoftwareEngineering #MERNStack #CodingHumor #DeveloperLife #TechTips #Frontend
Nidhi Jagga’s Post
More Relevant Posts
-
🚀 JavaScript Made Simple: Hoisting & Temporal Dead Zone (TDZ) Ever wondered why JavaScript sometimes behaves… unexpectedly? 🤔 Most of the time, the answer lies in two concepts: 👉 Hoisting 👉 Temporal Dead Zone (TDZ) Let’s break them down in a simple and friendly way 👇 🔹 Hoisting (What happens before your code runs?) Before JavaScript executes your code, it quickly scans it and stores variables in memory. • var → hoisted and given a default value undefined • let & const → hoisted but NOT initialized Example: console.log(a); // undefined var a = 10; 👉 That’s why no error here—JavaScript already knows about a 🔹 Temporal Dead Zone (TDZ) Now here’s where things get interesting 👇 TDZ is the time between when a variable is in memory and when it’s actually declared. During this time: ❌ You cannot access the variable ❌ Trying to do so will throw an error Example: console.log(b); // ReferenceError let b = 20; 👉 Even though b exists, JavaScript says: “Not yet!” 🚫 🔹 Quick Difference • var → accessible before declaration (returns undefined) • let/const → NOT accessible before declaration (TDZ) 🔹 Why should you care? Because this helps you: ✔ Avoid confusing bugs ✔ Understand how JavaScript actually works ✔ Write cleaner and more predictable code 🔹 Final Thought JavaScript isn’t weird… it’s just doing things behind the scenes that we don’t always see 👀 Once you understand Hoisting and TDZ, you start thinking like a real JavaScript developer 🚀 #JavaScript #WebDevelopment #NodeJS #Frontend #Coding #Developers #Tech #Debugging
To view or add a comment, sign in
-
Most JavaScript developers think they understand equality… until this happens: {} === {} // false And suddenly… nothing makes sense. Let me show you what’s REALLY happening 👇 In JavaScript, not all data is equal. 👉 Primitives (numbers, strings…) are stored by value 👉 Objects are stored by reference (in memory) So when you compare objects, you're NOT comparing their content… You're comparing their addresses. Now here’s where things get interesting 🔥 JavaScript doesn’t just compare values… It actually transforms them behind the scenes using something called: 👉 Type Coercion Example: "5" - 1 // 4 Why? Because JS silently converts "5" → number. But what about objects? 🤔 const obj = { id: 105 }; +obj // NaN ❌ JavaScript doesn’t know how to convert it. Except… sometimes it DOES 😳 const t1 = new Date(); const t2 = new Date(); t2 - t1 // works ✅ Wait… how did that happen?! This is where things go from “JavaScript” to magic 🧠✨ Behind the scenes, JS uses: 👉 Symbol.toPrimitive A hidden mechanism that tells the engine: “Hey, if you need to convert this object… here’s how to do it.” And here’s the crazy part 👇 You can control it yourself. const user = { [Symbol.toPrimitive](hint) { return 105; } }; +user // 105 ✅ This is called: 👉 Metaprogramming You’re not just writing code… You’re controlling how the language itself behaves. 💡 Why this matters? Because: You avoid weird bugs You understand how JS REALLY works You level up from “writing code” → “engineering behavior” And now you understand why tools like TypeScript exist… 👉 To protect you from all this hidden complexity. 🚀 Final thought: Most developers try to avoid JavaScript quirks… But the best developers? They understand them… and take control. #JavaScript #Frontend #WebDevelopment #Programming #SoftwareEngineering #TypeScript #CleanCode #100DaysOfCode #MERNStack #CodingTips #LearnToCode
To view or add a comment, sign in
-
-
Still Confused by 'this' Keyword In JavaScript ? Here's Your Cheat Sheet 🔥 JavaScript's this is a frequent pain point because its value depends entirely on execution context, not where you write it. In the global scope, this refers to the window object (browser). A regular function call sets this to the global object (or undefined in strict mode). When used as an object method, this points to the owning object. Arrow functions are different—they inherit this lexically from their surrounding scope, making them ideal for callbacks. Constructors (called with new) bind this to the new instance. Event listeners set this to the target element. Use .call(), .apply(), or .bind() for explicit control. Remember: "How is the function called?" is the only question that matters. #webdev #javascript #coding #programming #this #js #frontend #developer #tech #webdevelopment #softwareengineering #codenewbie #100DaysOfCode
To view or add a comment, sign in
-
-
🚨 Most Developers Get This WRONG in JavaScript If you still think JS runs line by line… you’re missing what actually happens behind the scenes 😵💫 I just broke down how JavaScript REALLY executes code 👇 📄 Check this out → 💡 Here’s the reality: 👉 1. Synchronous Code Runs first. Always. Top → Bottom. No surprises. 👉 2. Microtasks (Promises / async-await) These jump the queue ⚡ They execute before macrotasks 👉 3. Macrotasks (setTimeout, setInterval) Even with 0ms delay… they STILL run last 😮 🔥 Example that confuses everyone: 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: • Debugging async code becomes easy • You stop guessing execution order • You write production-level JavaScript • Interview questions become simple 💬 If you’ve ever been confused by: ❌ async/await ❌ Promise.then() ❌ setTimeout This will change how you think forever. 🚀 I turned this into a visual cheat sheet (easy to understand) Save it before your next interview 👇 📌 Don’t forget to: ✔️ Like ✔️ Comment “JS” ✔️ Follow for more dev content #JavaScript #WebDevelopment #Frontend #NodeJS #AsyncJavaScript #Coding #Programming #Developers #Tech #LearnToCode #SoftwareEngineering
To view or add a comment, sign in
-
🎉 JavaScript Hoisting — Explained Like a VIP Party Before the party starts, the host makes a guest list. That’s exactly what JavaScript does in its Setup Phase. It scans your file and writes down: ✔️ Variables ✔️ Functions That’s called Hoisting. But here’s where it gets interesting 👇 🟡 var On the guest list… but not seated yet. If you call it early → you get undefined. 🔒 let & const Also on the list… But locked in a VIP waiting room (aka Temporal Dead Zone). Call them early? 💥 ReferenceError. And once inside the party: 👕 let → Can change outfits (reassign value) 🧱 const → Outfit locked all night (cannot reassign) When you were learning JavaScript, which one confused you the most? 1️⃣ Why var becomes undefined 2️⃣ Temporal Dead Zone 3️⃣ Difference between let & const 4️⃣ Hoisting of functions Comment your number — let’s see where most devs struggled 🚀 #JavaScript #WebDevelopment #Frontend #CodingConcepts #LearnToCode #Developers
To view or add a comment, sign in
-
-
🚨 Ever wondered what actually happens behind the scenes when your JavaScript code runs? Or why some variables behave like they exist before you even write them? 🤯 Let’s break it down — because understanding this changes how you write JavaScript forever. 👇 💡 Execution Context in JavaScript Every time your JS code runs, it goes through two powerful phases: 🔹 1. Memory Creation Phase (a.k.a Variable Environment) • JavaScript scans your code before execution • Allocates memory for variables and functions • Variables are initialized with undefined • Functions are stored with their entire definition 👉 This is why hoisting happens! 🔹 2. Code Execution Phase (Thread of Execution) • Code runs line by line • Variables get their actual values assigned • Functions are invoked and executed • A single thread handles everything (yes, JS is single-threaded!) ⚡ Important Insight JavaScript doesn’t just “run code” — it prepares and then executes. That preparation step is what often confuses developers. 😬 Common Confusion • Accessing variables before assignment → undefined • Thinking JS executes top-to-bottom only → not entirely true • Misunderstanding hoisting → leads to bugs 🔥 Pro Tip Mastering execution context helps you: • Debug faster • Write predictable code • Truly understand closures, scope, and async behavior 📌 Think of it like this: Memory Creation = Setting the stage 🎭 Execution Phase = Performing the play 🎬 Once you see it this way, JavaScript starts making a lot more sense. #JavaScript #WebDevelopment #AsyncProgramming #Coding #LearnToCode #100DaysOfCode
To view or add a comment, sign in
-
-
Most JavaScript developers use async/await every day without actually understanding what runs it. The Event Loop is that thing. I spent two years writing JavaScript before I truly understood how the Event Loop worked. Once I did, bugs that used to take me hours to debug started making complete sense in minutes. Here is what you actually need to know: 1. JavaScript is single-threaded but not blocking The Event Loop is what makes async behavior possible without multiple threads. 2. The Call Stack runs your synchronous code first, always Anything async waits in the queue until the stack is completely empty. 3. Microtasks run before Macrotasks Promise callbacks (.then) execute before setTimeout, even if the timer is zero. This catches a lot of developers off guard. 4. Understanding this helps you write better async code You stop writing setTimeout hacks and start understanding why certain code runs out of order. 5. It explains why heavy computations block the UI A long synchronous task freezes the browser because nothing else can run until the stack clears. The mindset shift: JavaScript is not magic. It follows a very specific execution order and once you see it clearly, you write code that actually behaves the way you expect. 🧠 The Event Loop is one of those concepts that separates developers who guess from developers who know. When did the Event Loop finally click for you? 👇 If this helped, I would love to hear your experience. #JavaScript #WebDevelopment #EventLoop #Frontend #SoftwareEngineering
To view or add a comment, sign in
-
-
Promises in JavaScript is actually an interesting concept. Promises are one of the most important concepts in modern JavaScript. A Promise is an object that represents a value that will be either available now, later or never. It has three states: pending, fulfilled and rejected. Instead of blocking the program while waiting for something like data or an image to load, a promise allows JavaScript to continue running and then react when the task finishes. We can build a promise by using the Promise constructor, which takes an executor function with two parameters: resolve and reject. Resolve is called when the operation succeeds, and reject is called when something goes wrong. We can also consume promises using the .then() to handle success and catch() to handle errors. Each .then() method returns a new promise which allows us to chain asynchronous steps in sequence. Another powerful concept is PROMISIFYING, this simply means converting old callback-based APIs (like setTimeout or certain browser APIs) into promises so they can fit into modern asynchronous workflows. Understanding how to build, chain and handle promises properly is the foundation we need in mastering asynchronous JavaScript. #JavaScript #WebDevelopment #FrontendDevelopment #TechJourney #Growth
To view or add a comment, sign in
-
-
🚀 Destructuring in JavaScript (Writing Cleaner Code) Destructuring is one of the simplest ways to make JavaScript code more readable and expressive. Here’s how I use it in practice 👇 🧠 Object Destructuring const person = { name: "Rahul", age: 25 } const { name, age } = person console.log(name, age) // Rahul 25 🧠 Array Destructuring const arr = [10, 20, 30] const [a, b, c] = arr console.log(a, b, c) // 10 20 30 ⚡ Where It’s Used in Real Projects • React props handling • API response parsing • Function parameters • State management 💡 Why It Matters • Cleaner and shorter code • Less repetition • Better readability 🎯 Takeaway: Good code isn’t just about solving problems — it’s about writing solutions that are easy to read and maintain. Focusing on writing more expressive and maintainable JavaScript. 💪 #JavaScript #WebDevelopment #FrontendDeveloper #CleanCode #MERNStack #SoftwareEngineering “Extract Values Easily with JavaScript Destructuring”
To view or add a comment, sign in
-
-
Things I wish someone had drawn out for me when I was starting with JavaScript. A lot of engineers write JS for years without really knowing what happens after they hit run. How does the code actually execute? What's the JS engine doing? Why does async code behave the way it does? Why does setTimeout sometimes feel unpredictable? It all makes sense once you see the full picture. Here's what these notes cover: The JS Runtime Environment — engine, call stack, memory heap, and how execution contexts are created and destroyed. The Event Loop, how it continuously monitors the call stack and decides what runs next. Callback Queue vs Microtask Queue, why Promises behave differently from setTimeout, and why microtasks always go first. JIT Compilation, how V8 interprets and optimises your code on the fly. Web APIs and the Browser, where setTimeout, DOM APIs, fetch, and localStorage actually live. Once this clicked for me, a lot of "weird" JavaScript behaviour stopped feeling weird. If you're learning JS right now, save this. Come back to it when async starts feeling confusing. What part of JavaScript took you the longest to truly understand? #JavaScript #WebDevelopment #Frontend #LearnToCode
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