#JavaScript !! Coding Challenge !! Can you guess the output of the following code — and explain why? function outer() { const data = { count: 0 }; return function inner() { data.count++; return data.count; }; } const first = outer(); const second = outer(); first(); first(); second(); console.log(first(), second()); 𝐐𝐮𝐞𝐬𝐭𝐢𝐨𝐧 - What will this print in the console — and what’s happening behind the scenes? 𝐓𝐚𝐤𝐞𝐚𝐰𝐚𝐲𝐬: Think carefully about closures, memory context, and whether first and second share the same reference or not. 𝐃𝐫𝐨𝐩 𝐲𝐨𝐮𝐫 𝐚𝐧𝐬𝐰𝐞𝐫 (𝐚𝐧𝐝 𝐫𝐞𝐚𝐬𝐨𝐧𝐢𝐧𝐠!) 𝐢𝐧 𝐭𝐡𝐞 𝐜𝐨𝐦𝐦𝐞𝐧𝐭𝐬. #JavaScript #Closures #WebDevelopment #CodingChallenge #Frontend #JSInterview
JavaScript Coding Challenge: Closures and Memory Context
More Relevant Posts
-
🧠 JavaScript Closures — Explained in a Simple Way In JavaScript, a closure happens when a function remembers and can still use variables from the place where it was created — even after the outer function has finished. Think of it like having a key to a room. Even if the door is closed later… you can still enter and use the items inside. 🔑🚪 Here’s a quick example: function outer() { let message = "Hello 👋"; return function inner() { console.log(message); }; } const fn = outer(); fn(); // 👉 Output: Hello 👋 ✅ inner() still has access to message ✅ That memory power = Closure 🌟 Why Closures Are Useful? Private data (hidden variables) Remembering values (callbacks, timers) Custom functions (pre-filled data) Example: function greet(name) { return () => console.log("Hello " + name); } const hiJohn = greet("John"); hiJohn(); // Hello John 🔹One-line Definition: Closure = Function + Remembered outer variables If you found this helpful, follow for more: JavaScript | Full Stack | Real-world Coding Tips #JavaScript #Closures #Coding #WebDevelopment #LearnJS #Cognothink
To view or add a comment, sign in
-
🎯 Function Parameters & Arguments in JavaScript — Pass Data Like a Pro! Functions become powerful when you can send data to them — that’s where parameters and arguments come in! Let’s break it down 👇 --- 💡 Definition: Parameters are variables listed in the function definition. Arguments are the actual values you pass when calling the function. --- 🧩 Example: function greet(name) { // 'name' is a parameter console.log("Hello, " + name + "! 👋"); } greet("Kishore"); // 'Kishore' is an argument greet("Santhiya"); ✅ Output: Hello, Kishore! 👋 Hello, Santhiya! 👋 --- ⚙ Multiple Parameters Example: function add(a, b) { console.log("Sum:", a + b); } add(5, 10); add(3, 7); ✅ Output: Sum: 15 Sum: 10 --- 🧠 Key Points: Parameters are placeholders. Arguments are real data. You can pass default values too: function greet(name = "Guest") { console.log("Welcome, " + name); } greet(); // Output: Welcome, Guest --- 🔖 #JavaScript #Functions #WebDevelopment #Frontend #JSConcepts #CodingTips #LearnToCode #WebDevCommunity #100DaysOfCode #DeveloperJourney #ProgrammingBasics
To view or add a comment, sign in
-
⚡ Level Up Your JS Skills: 8 Powerful Array Methods to Know Working with arrays is something we do every day as JavaScript developers.knowing how to handle them efficiently makes your code smarter and easier to maintain. Here are some powerful and useful array methods 👇 🔁 map() – Transforms each element and returns a new array. Perfect for rendering lists or transforming data. 🧹 filter() – Creates a new array with elements that meet a condition. Ideal for filtering data or removing unwanted items. ➕ reduce() – Combines array elements into a single value. Great for totals, averages, or aggregating data. 🔍 some() – Checks if at least one element meets a condition. Useful for quick validations or checks. ✅ every() – Checks if all elements meet a condition. Ensures data consistency across your array. 🔎 includes() – Checks if an array contains a value. Cleaner alternative to indexOf(). 🧩 join() – Merges all elements into a single string. Perfect for formatting text or creating CSV-style output. ✂️ splice() – Adds or removes elements directly (mutates the array). Handy for modifying arrays in place. #JavaScript #WebDevelopment #Frontend #React #TypeScript #CodingTips #CleanCode #ArrayMethods
To view or add a comment, sign in
-
⚡ Level Up Your JS Skills: 8 Powerful Array Methods to Know Working with arrays is something we do every day as JavaScript developers.knowing how to handle them efficiently makes your code smarter and easier to maintain. Here are some powerful and useful array methods 👇 🔁 map() – Transforms each element and returns a new array. Perfect for rendering lists or transforming data. 🧹 filter() – Creates a new array with elements that meet a condition. Ideal for filtering data or removing unwanted items. ➕ reduce() – Combines array elements into a single value. Great for totals, averages, or aggregating data. 🔍 some() – Checks if at least one element meets a condition. Useful for quick validations or checks. ✅ every() – Checks if all elements meet a condition. Ensures data consistency across your array. 🔎 includes() – Checks if an array contains a value. Cleaner alternative to indexOf(). 🧩 join() – Merges all elements into a single string. Perfect for formatting text or creating CSV-style output. ✂️ splice() – Adds or removes elements directly (mutates the array). Handy for modifying arrays in place. #JavaScript #WebDevelopment #Frontend #React #TypeScript #CodingTips #CleanCode #ArrayMethods
To view or add a comment, sign in
-
💛 𝗗𝗮𝘆 𝟯 — 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁: 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀 𝗮𝗻𝗱 𝗖𝗹𝗼𝘀𝘂𝗿𝗲𝘀 Today’s focus was one of the most powerful and favorite topics in JavaScript — 𝗖𝗹𝗼𝘀𝘂𝗿𝗲𝘀 🔁 💡 𝗖𝗼𝗻𝗰𝗲𝗽𝘁: A closure gives a function access to its outer scope even after the outer function has finished execution. This enables data encapsulation, function factories, and state preservation. 💻 𝗘𝘅𝗮𝗺𝗽𝗹𝗲 𝟭 — 𝗕𝗮𝘀𝗶𝗰 𝗖𝗹𝗼𝘀𝘂𝗿𝗲: function outer() { let count = 0; return function inner() { count++; console.log("Count:", count); }; } const counter = outer(); counter(); // Count: 1 counter(); // Count: 2 🧠 Here, inner() remembers the variable count from outer() even after it’s done — that’s closure in action! 💻 𝗘𝘅𝗮𝗺𝗽𝗹𝗲 𝟮 — 𝗣𝗿𝗮𝗰𝘁𝗶𝗰𝗮𝗹 𝗨𝘀𝗲: Closures power concepts like private variables: function createUser(name) { return { getName: function () { return name; }, }; } const user = createUser("Ravi"); console.log(user.getName()); // Ravi 🧠 𝗞𝗲𝘆 𝗟𝗲𝗮𝗿𝗻𝗶𝗻𝗴𝘀: ✅ Inner functions retain references to outer scope variables. ✅ Closures are the backbone of callbacks, event handlers, and functional programming. ✅ Used in frameworks like React (hooks rely on closure principles). 🔥 𝗧𝗮𝗸𝗲𝗮𝘄𝗮𝘆: Closures aren’t magic — they’re just functions remembering where they came from. #JavaScript #Closures #Functions #FrontendDevelopment #100DaysOfCode #LearningEveryday
To view or add a comment, sign in
-
𝗨𝗻𝗱𝗲𝗿𝘀𝘁𝗮𝗻𝗱𝗶𝗻𝗴 𝗟𝗲𝘅𝗶𝗰𝗮𝗹 𝗦𝗰𝗼𝗽𝗶𝗻𝗴 𝗮𝗻𝗱 𝗖𝗹𝗼𝘀𝘂𝗿𝗲𝘀 𝗶𝗻 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 Every JavaScript developer must master two powerful concepts: 𝗟𝗲𝘅𝗶𝗰𝗮𝗹 𝗦𝗰𝗼𝗽𝗶𝗻𝗴 and 𝗖𝗹𝗼𝘀𝘂𝗿𝗲𝘀 — because they form the foundation of how functions truly work under the hood. ♟️𝗟𝗲𝘅𝗶𝗰𝗮𝗹 𝗦𝗰𝗼𝗽𝗶𝗻𝗴: It determines where variables can be accessed in your code. In JavaScript, a function can access variables defined in its own scope and in the scope where it was declared, not where it’s called. ♟️𝗖𝗹𝗼𝘀𝘂𝗿𝗲𝘀: When a function “remembers” the variables from its outer scope even after that outer function has finished executing — that’s a closure in action. They allow functions to have “private” data and maintain state. As you can see in the picture below, example code shows that 𝚒𝚗𝚗𝚎𝚛() keeps access to count even after 𝚘𝚞𝚝𝚎𝚛() has returned — that’s the magic of 𝗰𝗹𝗼𝘀𝘂𝗿𝗲𝘀! ♟️Pro Tip: 𝗖𝗹𝗼𝘀𝘂𝗿𝗲𝘀 are the secret behind many JS patterns like 𝗱𝗮𝘁𝗮 𝗽𝗿𝗶𝘃𝗮𝗰𝘆, 𝗳𝘂𝗻𝗰𝘁𝗶𝗼𝗻 𝗳𝗮𝗰𝘁𝗼𝗿𝗶𝗲𝘀, and 𝗲𝘃𝗲𝗻𝘁 𝗵𝗮𝗻𝗱𝗹𝗲𝗿𝘀. #JavaScript #WebDevelopment #Coding #Closures #LexicalScope #FrontendDevelopment #JSConcepts #WebDevCommunity #LearnToCode #CodeNewbie #ProgrammingTips #100DaysOfCode #DeveloperJourney
To view or add a comment, sign in
-
-
Frontend CRUD Application using HTML, CSS, and JavaScript I recently developed a mini project where users can Add, Update, Delete, and Search data dynamically inside a table — all managed using LocalStorage (no backend required!). 💡 Key Features: ✅ Add user details (username, batch, city) to a table ✅ Prevent duplicate entries ✅ Update existing user information dynamically ✅ Delete users easily ✅ Real-time search filter ✅ Data persistence using LocalStorage 🧠 Tech Stack: HTML for structure CSS for styling Vanilla JavaScript for interactivity and logic This project helped me strengthen my understanding of DOM manipulation, event handling, and data management using LocalStorage. 💻 Next Steps: I plan to extend this with frameworks like React and connect it to a backend using Spring Boot or Node.js for full-stack functionality. #FrontendDevelopment #JavaScript #WebDevelopment #HTML #CSS #CRUD #LocalStorage #CodingJourney #ProjectShowcase #LearningByDoing Manoj Kumar Reddy Parlapalli 10000 Coders
To view or add a comment, sign in
-
🔓 JS Tip: Stop Manually Assigning Object Properties! 🔓 Tired of writing var name = user.name; var email = user.email;? Destructuring lets you "pull apart" objects and arrays and grab just the pieces you need, all in one line. ❌ The Old Way (One by One) js code - var user = { id: 123, name: 'Alex', email: 'alex@example.com' }; var id = user.id; var name = user.name; var email = user.email; --- ✅ The New Way (Destructuring) js code - const user = { id: 123, name: 'Alex', email: 'alex@example.com' }; // "From 'user', get 'id', 'name', and 'email' // and put them in variables with the same name." const { id, name, email } = user; ---- 🔥 Why it's better: It's incredibly clean and efficient, especially with large objects from an API. You declare what data you want, not the tedious steps to get it. It's also perfect for function arguments and React props. 👉 View Our Services - www.webxpanda.com 🎇 Do you want more tips like this? Do follow and write "Yes" in the comment box. #javascriptTips #JavaScript #JSTips #ES6 #Developer #Programming #WebDev #ReactJS #NodeJS #Coding #TechTips #WebDeveloper #MdRedoyKayser #Webxpanda #WordPress
To view or add a comment, sign in
-
-
🔓 JS Tip: Stop Manually Assigning Object Properties! 🔓 Tired of writing var name = user.name; var email = user.email;? Destructuring lets you "pull apart" objects and arrays and grab just the pieces you need, all in one line. ❌ The Old Way (One by One) js code - var user = { id: 123, name: 'Alex', email: 'alex@example.com' }; var id = user.id; var name = user.name; var email = user.email; --- ✅ The New Way (Destructuring) js code - const user = { id: 123, name: 'Alex', email: 'alex@example.com' }; // "From 'user', get 'id', 'name', and 'email' // and put them in variables with the same name." const { id, name, email } = user; ---- 🔥 Why it's better: It's incredibly clean and efficient, especially with large objects from an API. You declare what data you want, not the tedious steps to get it. It's also perfect for function arguments and React props. 👉 View Our Services - www.webxpanda.com 🎇 Do you want more tips like this? Do follow and write "Yes" in the comment box. #javascriptTips #JavaScript #JSTips #ES6 #Developer #Programming #WebDev #ReactJS #NodeJS #Coding #TechTips #WebDeveloper #MdRedoyKayser #Webxpanda #WordPress
To view or add a comment, sign in
-
-
🔓 JS Tip: Stop Manually Assigning Object Properties! 🔓 Tired of writing var name = user.name; var email = user.email;? Destructuring lets you "pull apart" objects and arrays and grab just the pieces you need, all in one line. ❌ The Old Way (One by One) js code - var user = { id: 123, name: 'Alex', email: 'alex@example.com' }; var id = user.id; var name = user.name; var email = user.email; --- ✅ The New Way (Destructuring) js code - const user = { id: 123, name: 'Alex', email: 'alex@example.com' }; // "From 'user', get 'id', 'name', and 'email' // and put them in variables with the same name." const { id, name, email } = user; ---- 🔥 Why it's better: It's incredibly clean and efficient, especially with large objects from an API. You declare what data you want, not the tedious steps to get it. It's also perfect for function arguments and React props. 👉 View My New Services - https://lnkd.in/g5UaKeTc 🎇 Do you want more tips like this? Do follow and write "Yes" in the comment box. #javascriptTips #JavaScript #JSTips #ES6 #Developer #Programming #WebDev #ReactJS #NodeJS #Coding #TechTips #WebDeveloper #MdRedoyKayser #Webxpanda #WordPress
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
It will print 3 and 2 because the inner function forms a closure with data.count from the outer function. So it maintains the count reference in the memory and increments by 1. Also first and second do not share the same reference .