Why does this return true… but this returns false? 🤔 const obj = { 1: 'a', 2: 'b', 3: 'c' }; const set = new Set([1, 2, 3, 4, 5]); obj.hasOwnProperty('1'); // true obj.hasOwnProperty(1); // true set.has('1'); // false set.has(1); // true Here’s the catch 👇 👉 Objects convert keys to strings 👉 Sets use strict equality (===) So: 1 → '1' (in objects) ✅ '1' !== 1 (in sets) ❌ 💡 Objects coerce. Sets don’t. Did you know this before? Follow for more bite-sized JavaScript insights 🚀 #javascript #software engineering #frontend development
Objects vs Sets in JavaScript Equality Check
More Relevant Posts
-
For years, sorting an array in JavaScript has been a source of subtle bugs. The `.sort()` method, while functional, mutates the original array in place. This often leads developers to create a copy first, usually with the spread operator `[...]`, before sorting. This "copy-then-sort" pattern is verbose and easily forgotten, especially in complex applications where arrays are passed around. If you forget the copy, you inadvertently modify data in other parts of your program, leading to hard-to-trace bugs and unexpected side effects that can really tank your productivity. Enter `Array.toSorted()`. This modern, immutable alternative returns a new sorted array without touching the original. It's cleaner, safer, and exactly what developers have needed for handling data integrity. It prevents accidental data corruption and makes your code much more predictable. Are you still writing it the old way? #javascript #webdevelopment #frontend #cleancode #js
To view or add a comment, sign in
-
-
📒 𝐉𝐚𝐯𝐚𝐒𝐜𝐫𝐢𝐩𝐭 𝐡𝐚𝐬 𝐚 𝐜𝐥𝐞𝐚𝐧𝐞𝐫 𝐫𝐮𝐧𝐧𝐢𝐧𝐠 𝐢𝐧 𝐭𝐡𝐞 𝐛𝐚𝐜𝐤𝐠𝐫𝐨𝐮𝐧𝐝… 𝐚𝐧𝐝 𝐦𝐨𝐬𝐭 𝐝𝐞𝐯𝐞𝐥𝐨𝐩𝐞𝐫𝐬 𝐢𝐠𝐧𝐨𝐫𝐞 𝐢𝐭. 𝑌𝑒𝑠, 𝐼’𝑚 𝑡𝑎𝑙𝑘𝑖𝑛𝑔 𝑎𝑏𝑜𝑢𝑡 𝐺𝑎𝑟𝑏𝑎𝑔𝑒 𝐶𝑜𝑙𝑙𝑒𝑐𝑡𝑖𝑜𝑛 (𝐺𝐶) ♻️ Every time you create: ✅ objects ✅ arrays ✅ functions 𝐽𝑎𝑣𝑎𝑆𝑐𝑟𝑖𝑝𝑡 𝑎𝑙𝑙𝑜𝑐𝑎𝑡𝑒𝑠 𝑚𝑒𝑚𝑜𝑟𝑦. 𝐵𝑢𝑡 𝑡ℎ𝑒 𝑟𝑒𝑎𝑙 𝑞𝑢𝑒𝑠𝑡𝑖𝑜𝑛 𝑖𝑠… When does JS free that memory? ➡️ Only when the value becomes unreachable. 🔥 Reachable = Alive If something can be accessed from: 1️⃣ global variables 2️⃣ current function variables 3️⃣ call stack …it stays in memory. Example: 𝗹𝗲𝘁 𝘂𝘀𝗲𝗿 = { 𝗻𝗮𝗺𝗲: "𝗝𝗼𝗵𝗻" }; 𝘂𝘀𝗲𝗿 = 𝗻𝘂𝗹𝗹; Now no one can access it → GC removes it. ⚡ 𝐵𝑖𝑔𝑔𝑒𝑠𝑡 𝑚𝑖𝑠𝑐𝑜𝑛𝑐𝑒𝑝𝑡𝑖𝑜𝑛: “Objects are deleted when they have no references.” Not exactly. Because two objects can reference each other and STILL get deleted. 📌 If the main root reference is gone, the whole connected group becomes an unreachable island → GC clears everything. 🚀 𝑊ℎ𝑦 𝑠ℎ𝑜𝑢𝑙𝑑 𝑦𝑜𝑢 𝑐𝑎𝑟𝑒? Because this is how memory leaks happen: ❌ event listeners not removed ❌ unused variables still holding references ❌ large objects stored unnecessarily Result: 🐢 slow apps 💥 crashes 📉 poor performance 💡 Simple rule: If you don’t need it → remove the reference. Because JavaScript will clean it… only after you let go. #JavaScript #WebDevelopment #Frontend #ReactJS #Programming #Coding #SoftwareEngineering #Tech #Learning #interview
To view or add a comment, sign in
-
🧠 JavaScript Closures Explained Simply Closures are one of those concepts that seem confusing at first — but once you understand them, they become incredibly useful. Here’s a simple way I understand closures 👇 🔹 What is a Closure? A closure is when a function remembers variables from its outer scope, even after that outer function has finished executing. 🔹 Example function outer() { let count = 0; return function inner() { count++; console.log(count); }; } const counter = outer(); counter(); // 1 counter(); // 2 Even though outer() has finished running, the inner() function still has access to count. That’s a closure. 🔹 Why is this useful? Closures are commonly used for: ✅ Data encapsulation ✅ Creating private variables ✅ Maintaining state ✅ Function factories 🔹 Real-world example Think of things like: • counters • timers • caching functions Closures help retain values without exposing them globally. 💡 One thing I’ve learned: Understanding concepts like closures makes you better at writing clean and predictable JavaScript, not just using frameworks. Curious to hear from other developers 👇 Where have you used closures in your projects? #javascript #frontenddevelopment #webdevelopment #reactjs #softwareengineering #developers
To view or add a comment, sign in
-
-
JavaScript Pro-Tips for Cleaner Code 👇 Save this 📌 ✅ Dynamic Object Keys const key = "status"; const obj = { [key]: "active" }; ✅ Array to Object Conversion const obj = { ...['a', 'b', 'c'] }; // { 0: 'a', 1: 'b', 2: 'c' } ✅ Deep Clone (Native) const copy = structuredClone(originalObj); ✅ Quick Integer Conversion const num = +"42"; // Faster than Number() or parseInt() ✅ Flatten Nested Arrays const flat = nestedArr.flat(Infinity); 💡 Modern JS = Less Boilerplate + Better Performance Which of these do you find most useful? Let's discuss below! 🚀 #JavaScript #CodingTips #SoftwareEngineering #Frontend #TypeScript #Developers #WebDevelopment #Coding
To view or add a comment, sign in
-
-
𝐉𝐚𝐯𝐚𝐒𝐜𝐫𝐢𝐩𝐭 𝐐𝐮𝐢𝐳 𝐭𝐡𝐚𝐭 𝐄𝐱𝐩𝐨𝐬𝐞𝐬 𝐑𝐞𝐚𝐥 𝐔𝐧𝐝𝐞𝐫𝐬𝐭𝐚𝐧𝐝𝐢𝐧𝐠 !! Try answering these without running code: Why does [1,2] === [1,2] return false? Why is typeof null an object? Why does 4 + '3' behave differently from 4 - '3'? Why does var print 3,3,3 but let prints 0,1,2 in loops? Why is 0.1 + 0.2 !== 0.3? And the real twist: Objects as keys → overwritten silently Arrays compared by reference, not value this depends on how, not where, a function is called Truthy/falsy values can break real-world logic values.filter(Boolean) removes more than you expect JavaScript is not weird. We just don’t go deep enough. Full quiz PDF (well-structured with answers) which covered: 1. Equality & Type Coercion 2. Objects & Arrays 3. Scope, Closures & this 4. Prototypes & Built-ins 5. Control Flow & Miscellaneous For more insightful content checkout below: 🟦 𝑳𝒊𝒏𝒌𝒆𝒅𝑰𝒏 - https://lnkd.in/dwi3tV83 ⬛ 𝑮𝒊𝒕𝑯𝒖𝒃 - https://lnkd.in/dkW958Tj 🟥 𝒀𝒐𝒖𝑻𝒖𝒃𝒆 - https://lnkd.in/dDig2j75 or Priya Frontend Vlogz 🔷 𝐓𝐰𝐢𝐭𝐭𝐞𝐫 - https://lnkd.in/dyfEuJNt #frontend #javascript #react #developers #interview w3schools.com JavaScript Mastery JavaScript Developer
To view or add a comment, sign in
-
Two JavaScript operators that quietly save you from runtime crashes: ?. — Optional Chaining ?? — Nullish Coalescing Before: const city = user.address.city; // 💥 Crashes if user or address is null After: const city = user?.address?.city ?? 'Unknown'; // ✅ Safe. Always. What each one does: ?. → Stops evaluation and returns undefined if anything in the chain is null/undefined. No crash, no if-checks needed. ?? → Returns the right-hand value ONLY when the left is null or undefined. Unlike ||, it won't replace 0, false, or '' — which are valid values. Combined, they make your data-fetching code 10x more resilient. One line. Zero crashes. Ship it. #JavaScript #WebDevelopment #Frontend #CodingTips #CleanCode
To view or add a comment, sign in
-
-
Day 16 — Memoization in JavaScript (Boost Performance) Want to make your functions faster without changing logic? 👉 Use Memoization 🚀 --- 🔍 What is Memoization? 👉 Memoization is an optimization technique where we cache results of expensive function calls and reuse them. --- 📌 Without Memoization function slowSquare(n) { console.log("Calculating..."); return n * n; } slowSquare(5); // Calculating... slowSquare(5); // Calculating again ❌ --- ⚡ With Memoization function memoize(fn) { let cache = {}; return function (n) { if (cache[n]) { return cache[n]; } let result = fn(n); cache[n] = result; return result; }; } const fastSquare = memoize((n) => { console.log("Calculating..."); return n * n; }); fastSquare(5); // Calculating... fastSquare(5); // Uses cache ✅ --- 🧠 What’s happening? 👉 First call → calculates result 👉 Next call → returns from cache 👉 No re-computation --- 🚀 Why it matters ✔ Improves performance ✔ Avoids repeated calculations ✔ Useful in heavy computations ✔ Used in React (useMemo) --- 💡 One-line takeaway: 👉 “Don’t recompute — reuse cached results.” --- If your function is slow, memoization can make it fast instantly. #JavaScript #Performance #Memoization #WebDevelopment #Frontend #100DaysOfCode
To view or add a comment, sign in
-
🚀 Stop Writing 'Beginner' JavaScript. Start Writing Production-Level Code. Body: Understanding these 10 advanced concepts is what separates developers who copy-paste from developers who architect scalable, efficient applications. If you are aiming for senior roles or optimizing existing apps, these are mandatory 🔍💻: 1️⃣ Closures (State Management) 2️⃣ Promises & Async/Await (Non-Blocking I/O) 3️⃣ Hoisting (Scope Clarity) 4️⃣ The Event Loop (Concurrency) 5️⃣ this Keyword (Context) 6️⃣ Spread & Rest (Data manipulation) 7️⃣ Destructuring (Clean code) 8️⃣ Call, Apply, Bind (Explicit context) 9️⃣ IIFE (Private Scope) 🔟 Modules (Organization) I've summarized how the biggest concepts (like Closures, the Event Loop, and Async patterns) work together to optimize your app's architecture in the diagram below. ⬇️ 💡 Practice these in your console to truly understand the mechanics. 💬 Which concept did you find the hardest to master? Let me know in the comments! 👇 #JavaScript #WebDevelopment #Coding #ProgrammingTips #Frontend #Backend #SoftwareEngineering
To view or add a comment, sign in
-
-
Most JavaScript bugs aren’t caused by complex logic. They come from choosing the wrong array method. The difference between find() and filter(), map() and forEach(), or some() and every() looks small—until it reaches production. That’s where performance, readability, and hidden bugs start to matter. Examples: filter()[0] instead of find() → unnecessary full array scan Using forEach() when map() should return transformed data → broken data pipelines Calling sort() directly in React state → silent mutation bugs Using filter().length > 0 instead of some() → extra work for no reason Overusing reduce() for simple logic → clever code, poor readability Great developers don’t just know array methods. They know: ✔ When to use them ✔ When not to use them ✔ Their performance cost ✔ Their side effects ✔ Their production impact Simple rule: Code should not only work. It should be readable, predictable, and efficient. Because in real applications, small method choices create big system behavior. The engineers I respect most don’t use reduce() to look smart. They use find() instead of filter()[0]. They spread before sort(). They know forEach() returns nothing. That’s the difference between writing JavaScript and engineering with JavaScript. #JavaScript #FrontendDevelopment #WebDevelopment #ReactJS #SoftwareEngineering #Programming #CodeQuality #TechLeadership
To view or add a comment, sign in
-
-
🔁 JavaScript Tip: Convert Object → Array Easily! Working with objects in JavaScript? Sometimes you need to transform them into arrays for better handling — especially in loops, UI rendering, or API data processing. Here are 3 powerful methods you should know: ✅ Object.keys() → Get all keys ✅ Object.values() → Get all values ✅ Object.entries() → Get key-value pairs 💡 Example: const zoo = { lion: "🦁", panda: "🐼" }; 👉 "Object.keys(zoo)" → ['lion', 'panda'] 👉 "Object.values(zoo)" → ['🦁', '🐼'] 👉 "Object.entries(zoo)" → [['lion', '🦁'], ['panda', '🐼']] 🚀 These methods are super useful in React, API handling, and data transformations. #JavaScript #WebDevelopment #Frontend #ReactJS #CodingTips #Developers #100DaysOfCode
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