🚀 Day 24 of Learning in Public: JavaScript Edition 💻✨ 📜 The Origin Story In the beginning, JavaScript had no official way to share code between files. CommonJS (CJS) stepped in to save Node.js developers, while ES Modules (ESM) eventually arrived as the official standard for the entire JavaScript ecosystem . ⚔️ Syntax Showdown 1. CommonJS (The Classic) Uses require() and module.exports. It’s synchronous, meaning it loads files one by one. JavaScript // day19.js (Exporting) exports.login = () => console.log("Logged in!"); // day19_1.js (Importing) const { login } = require("./day19.js"); 2. ES Modules (The Modern Standard) Uses import and export. This is what I’ve been practicing lately, and it's much cleaner! JavaScript // day19.js (Exporting) export const login = () => console.log("Login to application"); export const marks = [100, 200, 40]; // day19_1.js (Importing) import { login, marks } from "./day19.js"; ⚙️ Why the Runtime Matters The difference isn't just "aesthetic"—it's about how your code actually runs: Loading: CJS is synchronous (step-by-step), while ESM is asynchronous, making it faster for web browsers. Analysis: ESM is static. Tools can look at your code before it runs to see exactly what you’re using. Tree Shaking: Because ESM is static, modern bundlers can delete unused code (dead code) to keep your files tiny. CJS doesn't support this easily. 🛠️ When to use what? Use CommonJS if: You are maintaining legacy Node.js codebases. You are working with older npm packages that haven't updated in years. Use ES Modules if: You are starting a new project in 2026. You are building for the browser or using modern frameworks (React, Vue, etc.). You want to take advantage of top-level await and better performance. 🏁 Conclusion While CommonJS served us well for a decade, ES Modules are the future. They bring a unified standard to both the server and the browser. Which module system are you using in your current project? Let’s discuss in the comments! 👇 #JavaScript #WebDevelopment #NodeJS #CodingTips #SoftwareEngineering #JavaScript #LearningInPublic #WebDevelopment #CodingJourney #JSBasics #Exports #ESModules
JavaScript Module Systems: CJS vs ESM
More Relevant Posts
-
I finally understood how Node.js actually works behind the scenes. And it completely changed how I think about JavaScript runtime. 🚀 Day 19 of learning Node.js Internals with Piyush Garg sir Today was not about writing APIs or building projects. It was about understanding what actually happens under the hood when Node.js runs. Here’s what I learned today 👇 ⚙️ 1. JavaScript Engine (V8) Node.js uses the V8 JavaScript Engine. V8 is responsible for: • Compiling JavaScript • Converting JS → Machine Code • Executing the code extremely fast But Node.js alone is not just V8. 🔗 2. V8 Bindings with C++ Node.js connects JavaScript with low-level system operations using C++ bindings. This allows Node.js to: • Access the file system • Perform networking • Handle OS-level tasks • Execute asynchronous operations So the real architecture becomes: JavaScript (V8) + C++ bindings + libuv = Node.js ⚡ 3. Role of libuv Node.js uses libuv. libuv handles: • Asynchronous I/O • Event loop • Thread pool • File system operations • Networking This is the reason Node.js can be non-blocking. 🧠 4. Understanding the Main Thread The main thread runs the JavaScript code. Inside it we have: • Project initialization • Top-level code execution • Import statements loading modules • Event callback registrations • Starting the event loop Once everything is registered… ➡️ The event loop starts running. 🔁 5. The Event Loop Internals The event loop continuously checks for tasks. A simplified version looks like this: while(true) { expiredCallbacks() IO Polling() setImmediate() closeCallbacks() } This loop ensures Node.js can handle thousands of operations asynchronously. 🧵 6. Thread Pool Node.js also uses a thread pool managed by libuv. These threads handle heavy tasks like: • File system operations • DNS lookup • Cryptography • Compression So even though Node.js is single-threaded for JavaScript, internally it still uses multiple threads. 📚 Key takeaway from today Node.js is powerful because of its architecture: V8 Engine + C++ Bindings + libuv + Event Loop + Thread Pool Understanding these internals helps you write better and more optimized backend applications. Building in public. Learning one concept at a time. 🚀 Hitesh Choudhary | Akash Kadlag | Suraj Kumar Jha | Shubham Waje | Jay Kadlag What Node.js concept took you the longest to understand? #NodeJS #JavaScript #BackendDevelopment #NodeJSInternals #LearnInPublic #100DaysOfCode #WebDevelopment #ProgrammingJourney #chaicode
To view or add a comment, sign in
-
-
🚀 Days 4–5 of My 40-Day JavaScript & React Learning Challenge Over the last few days, I revisited some core React fundamentals that are easy to use but even more powerful when you understand how they work internally. Strengthening these basics is helping me write cleaner, more maintainable, and more efficient React code. Here are the concepts I reviewed 👇 🔹 React Elements & React.createElement() Before JSX, React elements are created using React.createElement(). let element = React.createElement( "div", { className: "greeting" }, "Hello World!" ); Rendering it in React: const root = ReactDOMClient.createRoot(document.getElementById("root")); root.render(element); This made me realize that JSX is simply a cleaner syntax that compiles to React.createElement() behind the scenes. 🔹 JSX Syntax JSX lets us write HTML-like syntax inside JavaScript. let name = "Babu"; let heading = <h1 className="greeting">{name}</h1>; This improves readability and makes UI code much easier to understand. 🔹 JavaScript Inside JSX One powerful feature of JSX is the ability to use JavaScript expressions inside {}. let user = { firstName: "Mahesh Babu", lastName: "Maddela" }; const fullName = user => user.firstName + " " + user.lastName; let heading = <h1>Hello, {fullName(user)}</h1>; This allows us to dynamically render data in the UI. 🔹 Rendering Multiple Elements JSX requires a single parent element when returning multiple elements. let element = ( <div> <h1>Hello</h1> <p>Para</p> </div> ); 🔹 Lists in React When displaying multiple items, we usually render lists using map(). const userDetailsList = [ { uniqueNo: 1, name: "Esther Howard", role: "Software Developer" }, { uniqueNo: 2, name: "Floyd Miles", role: "UI Designer" } ]; const userList = userDetailsList.map(user => ( <li key={user.uniqueNo}> {user.name} - {user.role} </li> )); 🔹 Keys in React React uses keys to identify which items changed, were added, or removed. <li key={user.uniqueNo}>{user.name}</li> Best practices: Use unique IDs from your data Keys must be unique among siblings Avoid using array indexes when possible Important detail: Keys are not passed as props to components. const UserProfile = (props) => { const { userDetails } = props; // key will not be available here }; 💡 Key takeaway from the last few days: Revisiting the fundamentals helps connect the dots between React syntax and how it actually works internally. Small concepts like JSX, lists, and keys play a huge role in building scalable React applications. Learning continues tomorrow. 💻 #ReactJS #JavaScript #FrontendDevelopment #LearningInPublic #WebDevelopment #DeveloperJourney
To view or add a comment, sign in
-
𝑵𝑶𝑫𝑬.𝒋𝒔 𝑭𝑨𝑸 𝐐: 𝐖𝐡𝐚𝐭 𝐢𝐬 𝐍𝐨𝐝𝐞.𝐣𝐬? Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine, which takes JavaScript code and executes it directly on the computer's operating system. It enables developers to run JavaScript code on the server-side, contrary to the traditional approach of executing JavaScript in the browser. 𝐐. 𝐖𝐡𝐚𝐭 𝐢𝐬 𝐕𝟖 ? V8 is Google’s open-source, high-performance JavaScript engine. It is written in C++ and is the same engine that powers the Google Chrome browser. 𝑰𝒏 𝒔𝒊𝒎𝒑𝒍𝒆 𝒕𝒆𝒓𝒎𝒔: JavaScript is a high-level language that computers don't naturally "speak." V8 acts as the translator that turns your JavaScript code into something the computer's processor can actually execute. 𝙆𝙚𝙮 𝙍𝙤𝙡𝙚𝙨 𝙤𝙛 𝙑8 𝙞𝙣 𝙉𝙤𝙙𝙚.𝙟𝙨 • 𝑪𝒐𝒎𝒑𝒊𝒍𝒂𝒕𝒊𝒐𝒏: V8 doesn't just interpret code line-by-line (which is slow). It uses a process called Just-In-Time (JIT) Compilation to compile JavaScript directly into native machine code before executing it. • 𝑴𝒆𝒎𝒐𝒓𝒚 𝑴𝒂𝒏𝒂𝒈𝒆𝒎𝒆𝒏𝒕: It handles the call stack and the "Heap" (where objects are stored). • 𝑮𝒂𝒓𝒃𝒂𝒈𝒆 𝑪𝒐𝒍𝒍𝒆𝒄𝒕𝒊𝒐𝒏: V8 automatically identifies and clears out objects that are no longer being used to prevent memory leaks. 𝐐. 𝐖𝐡𝐚𝐭 𝐢𝐬 𝐉𝐚𝐯𝐚𝐒𝐜𝐫𝐢𝐩𝐭 𝐑𝐮𝐧𝐭𝐢𝐦𝐞 𝐄𝐧𝐯𝐢𝐫𝐨𝐧𝐦𝐞𝐧𝐭 ? A runtime environment provides all the necessary components to execute and run code. In the case of JavaScript, the browser acts as the runtime environment. However, with Node.js, developers can execute JavaScript outside the browser, allowing them to access resources and perform tasks typically reserved for server-side programming languages. 𝐐. 𝐖𝐡𝐲 𝐰𝐚𝐬 𝐍𝐨𝐝𝐞.𝐣𝐬 𝐂𝐫𝐞𝐚𝐭𝐞𝐝 ? 𝑻𝒉𝒆 𝑷𝒓𝒐𝒃𝒍𝒆𝒎: 𝑩𝒍𝒐𝒄𝒌𝒊𝒏𝒈 𝑰/𝑶: In traditional servers, every time a user made a request (like asking for a file or a database record), the server would spawn a new thread. ➛ If that thread had to wait for a database to respond, it would just "sit there" doing nothing (Blocking). ➛ As more users connected, the server would run out of RAM because each thread consumes memory. 𝑻𝒉𝒆 𝑪𝒐𝒓𝒆 𝑷𝒉𝒊𝒍𝒐𝒔𝒐𝒑𝒉𝒚: Node.js was created based on three main pillars: 1. 𝑵𝒐𝒏-𝑩𝒍𝒐𝒄𝒌𝒊𝒏𝒈 𝑰/𝑶: Instead of waiting for a database to return data, Node.js sends the request and moves on to the next task immediately. When the data is ready, a "callback" is triggered to handle it. 2. 𝑺𝒊𝒏𝒈𝒍𝒆-𝑻𝒉𝒓𝒆𝒂𝒅𝒆𝒅 𝑬𝒗𝒆𝒏𝒕 𝑳𝒐𝒐𝒑: Node.js uses a single main thread to handle all requests. This makes it extremely lightweight and efficient for I/O-intensive applications (like chat apps, streaming, or real-time tools). 3. 𝑼𝒏𝒊𝒇𝒊𝒆𝒅 𝑳𝒂𝒏𝒈𝒖𝒂𝒈𝒆 (𝑭𝒖𝒍𝒍-𝑺𝒕𝒂𝒄𝒌): By bringing JavaScript to the server, Node.js allowed developers to use the same language for both the frontend and the backend. This reduced the "context switching" for developers and made it easier to share code between the two sides.
To view or add a comment, sign in
-
💻 Day 88 — Mastering JavaScript Objects Today's learning was focused on one of the most important foundations of JavaScript: Objects. Objects are everywhere in JS — from APIs to DOM elements, browser events, user data, configurations, classes, and much more. Understanding them deeply is crucial for becoming a strong JavaScript developer. 🎯 What I Learned / Practiced 🔹 Creating & Accessing Objects — Learned how to create objects with key–value pairs and practiced accessing values using dot notation; discovered that JavaScript handles duplicate keys by overriding earlier values with the latest one 🔹 Extracting Keys, Values & Entries — Practiced using Object.keys() to return all keys, Object.values() to return all values, and Object.entries() to return key–value pairs; these are extremely useful when iterating over objects or converting them into arrays 🔹 Updating & Deleting Object Properties — Learned that object properties can be updated anytime and unwanted keys can be removed using the delete operator 🔹 Understanding this Keyword — Explored how this works inside objects; inside an object method, this refers to the current object, making it possible to access its properties 🔹 Functions & Object Context (call, apply, bind) — Learned how to borrow object properties into standalone functions using call() to invoke the function with a given object, apply() (similar to call but accepts an array of arguments), and bind() to return a new function with fixed object context 🔹 JavaScript Quirks (Type Coercion) — Explored surprising JavaScript comparisons like false == [], false == '', and false == ![], which showed how loose equality (==) performs type coercion and can produce unexpected results 💡 Simple Example I created an object representing a user with properties like name and age. Then I used this inside a method to access those properties. I also practiced using call() to borrow a method from one object and use it with another object's data. This helped me understand how execution context works and how to control it when needed. 🌱 Reflection / Key Takeaways Today helped me strengthen my understanding of how objects store and manage data, context binding using this, call, apply, and bind, and JavaScript's unique type coercion behavior. These concepts form a strong base for upcoming topics like classes, prototypes, and advanced object manipulation. Objects are truly the foundation of modern JavaScript development. 🔗 Links GitHub:https://lnkd.in/gX8M3P4g Live Demo (Vercel):https://lnkd.in/gx9rBKYE 🙏 Thank you for the continuous guidance and support Codegnan | Uppugundla Sairam | Saketh Kallepu | Ambica Kiranmayee Bellamkonda #Day88 #FullStackDevelopment #FrontendDevelopment #JavaScript #Objects #WebDevelopment #LearningJourney
To view or add a comment, sign in
-
You're writing JavaScript like it's 2015. And it's showing in your code reviews. Here's the modern JS cheat sheet that changed everything for me: VARIABLES const → Can't reassign (use by default) let → Can reassign (use when needed) var → Don't use (outdated) ARROW FUNCTIONS // Old way function add(a, b) { return a + b; } // New way const add = (a, b) => a + b; DESTRUCTURING // Arrays const [first, second] = [1, 2, 3]; // Objects const { name, age } = user; SPREAD OPERATOR // Copy arrays const newArr = [...oldArr]; // Merge objects const merged = {...obj1, ...obj2}; TEMPLATE LITERALS // Old way const msg = "Hello " + name + "!"; // New way const msg = `Hello ${name}!`; ARRAY METHODS .map() → Transform each item .filter() → Keep items that match .reduce() → Combine into single value .find() → Get first match .some() → Check if any match .every() → Check if all match PROMISES & ASYNC/AWAIT // Promise fetch(url).then(res => res.json()); // Modern async/await const data = await fetch(url).then(r => r.json()); OPTIONAL CHAINING // Old way const city = user && user.address && user.address.city; // New way const city = user?.address?.city; NULLISH COALESCING // Old way (breaks with 0 or '') const value = input || 'default'; // New way (only null/undefined) const value = input ?? 'default'; SHORT CIRCUIT // Conditional execution isLoggedIn && showDashboard(); // Default values const name = userName || 'Guest'; What I wish I knew earlier: Stop writing verbose code. Modern JS is cleaner, faster, and more readable. Junior devs write what works. Senior devs write what's maintainable. Modern JS syntax isn't just trendy. It's more readable, less error-prone, and faster to write. If you're still using var and concatenating strings with +, you're working harder than you need to. Update your syntax. Speed up your workflow. 📄 Want the complete Modern JavaScript cheatsheet with examples, use cases, and gotchas? Comment "JS" and I'll send it. 🔁 Repost if someone on your timeline needs to modernize their JavaScript ➕ Follow Arijit Ghosh for dev shortcuts that actually matter 🔗 My telegram: https://lnkd.in/ghHMXg2Q #JavaScript #WebDev #Coding #Programming #Frontend #ReactJS #NodeJS #TechTips
To view or add a comment, sign in
-
🚀 Day 14 of JavaScript Daily Series JavaScript Template Literals — Backticks, ${}, Multi-line Strings (Super Easy Hinglish + Real-Life Examples) Aaj hum JavaScript ka one of the most modern & powerful features seekhenge → 👉 Template Literals (introduced in ES6) Yeh code ko 2x clean, readable aur easy bana dete hain! 💡 What Are Template Literals? (Simple English) Template literals are special strings written using backticks (``) They allow: ✔ Multi-line strings ✔ Variables inside strings ✔ Cleaner formatting ✔ Better readability 🧠 Hinglish Explanation Pehle hum strings ko " " quotes se likhte the, aur variables ko add karne ke liye + + laga-laga ke hath dukh jaata tha. Template literals bolte hain: “Ritesh bhai, tension mat lo… sab easy bana dete hain!” 😄 🧱 1️⃣ Backticks (``) — The New & Better String Format Example: let name = "Ritesh"; let msg = `Hello ${name}, welcome to JavaScript!`; console.log(msg); ✔ No + + ✔ Automatic spacing ✔ Clean and readable 🔁 2️⃣ ${} — Variable / Expression Insert Karna Aap backticks ke andar kisi bhi variable ko easily daal sakte ho: let price = 499; console.log(`Your final price is ₹${price}`); Expressions bhi kaam karte hain: console.log(`2 + 2 = ${2 + 2}`); 📜 3️⃣ Multi-line Strings — No Need for \n Pehle hum: let msg = "Hello\nWorld"; Ab: let msg = ` This is line 1 This is line 2 This is line 3 `; ✔ Best for UI text ✔ Emails ✔ Multi-line messages ✔ Readable content 📱 Real-Life Example — Instagram Notification Message let user = "AapanRasoi"; let followers = 1200; let message = ` 🔔 New Activity! Hey ${user}, you gained ${followers} followers today! Keep growing! 🚀 `; console.log(message); Perfect for: ✔ Notification messages ✔ Email templates ✔ Chat messages ✔ JSX-style strings 🧠 Why Template Literals Are a Game-Changer? ✔ No messy string concatenation ✔ More readable ✔ Easy variable insertion ✔ Perfect for dynamic UI ✔ Used heavily in React, Node.js, APIs, everything! 🎯 Quick Summary FeatureUseBackticksCleaner strings${}Insert variables & expressionsMulti-lineCreate structured text easily
To view or add a comment, sign in
-
🚀 Day 4 / 100 — JavaScript Fundamentals Refresher #100DaysOfCode challenge Today I revised some core JavaScript concepts that every developer should know. These are small things we often overlook… but they’re essential for debugging and writing clean code. Here’s a quick JavaScript revision :👇 🧠 1. Hoisting Hoisting means JavaScript moves variable and function declarations to the top of their scope before execution. console.log(a); // undefined var a = 5; Why undefined? Because var a is hoisted, but the value 5 is assigned later. So internally JS sees this as: var a; console.log(a); a = 5; ⚡ 2. Hoisting with let and const let and const are also hoisted, but they behave differently. They cannot be accessed before declaration. console.log(a); // ❌ ReferenceError let a = 10; Unlike var, they are not initialized during hoisting. 🚫 3. Temporal Dead Zone (TDZ) The Temporal Dead Zone is the time between: • When a variable is hoisted • And when it is declared During this period, the variable exists but cannot be accessed. Example: console.log(a); // ReferenceError let a = 10; The variable a is in the Temporal Dead Zone until the line where it’s declared. This prevents many bugs that happened with var. 🖥️ 4. console.log() The most common debugging tool. console.log("Hello World"); Used to: • Print values • Inspect objects • Debug logic Think of it as a developer’s flashlight 🔦 ❌ 5. console.error() Used to display error messages in the console. console.error("Something went wrong"); Usually appears in red and helps identify critical problems quickly. ⚠️ 6. console.warn() Used for warnings that might cause issues later. console.warn("This feature is deprecated"); Displayed in yellow in most browsers. ⏱️ 7. setTimeout() Executes a function once after a delay. setTimeout(() => { console.log("Runs after 2 seconds"); }, 2000); Common uses: • Delayed UI actions • Notifications • API retries 🔁 8. setInterval() Executes a function repeatedly after a fixed interval. setInterval(() => { console.log("Runs every 2 seconds"); }, 2000); Used for: • Timers • Polling APIs • Real-time updates 💡 Key takeaway: Great developers don’t just chase new frameworks — they master the fundamentals. Revisiting JavaScript basics always uncovers something new. 🔥 Day 4 completed. 96 days to go. #javascript #100daysofcode #webdevelopment #coding #developers #programming #learninpublic #buildinpublic #SheryiansCodingSchool #Sheryians
To view or add a comment, sign in
-
-
Day 71 – Deep Dive into JavaScript Functions & Advanced Concepts Today I explored one of the most powerful building blocks in JavaScript — Functions. Functions help us write reusable, modular, and organized code. But today wasn’t just about basic functions — I went deeper into advanced function concepts. 🔹 Function Declaration Created using the function keyword: function add(a, b){ return a + b; } ✔️ Hoisted ✔️ Can be called before declaration ✔️ Globally accessible 🔹 Function Expression (Anonymous Function) const xs = function(){ console.log("Suha Digitech"); } ✔️ Assigned to a variable ✔️ Not hoisted like normal functions ✔️ Cannot call before definition 🔹 Constructor Function const sum = new Function("a", "b", "return a + b"); ✔️ Created using new Function() ✔️ Executes in a single line ✔️ Parameters passed as strings 🔹 Function Scope 🔸 Global Scope – Accessible everywhere 🔸 Local Scope – Accessible only inside the function Understanding scope prevents unexpected errors and improves code structure. 🔹 Rest Parameters function add(a, ...b){ return b; } ✔️ Collects remaining arguments into an array ✔️ Useful for handling dynamic inputs 🔹 Default Parameters function add(a, b = 10){ return a + b; } ✔️ Uses default value if argument not passed 🔹 Callback Function Passing one function as an argument to another: function display(value){ return value; } display(add(10, 30)); ✔️ Enables reusable and flexible logic ✔️ Core concept for async programming 🔹 Arrow Functions const add = (a, b) => a + b; ✔️ Short syntax ✔️ Clean and modern ✔️ Implicit return for single-line expressions 🔹 Higher Order Functions 🔸 map() Returns a new array after transforming every element. 🔸 filter() Returns elements that satisfy a condition. 🔸 reduce() Reduces the array into a single value. These are powerful tools for writing clean and functional-style JavaScript. 🔹 Objects & this Keyword Created object methods and understood how this refers to the current object. var obj = { fname: "Suha", lname: "Digitech", fullName: function(){ return this.fname + " " + this.lname; } } 🔹 call() & bind() Methods ✔️ call() – Immediately invokes a function with a different object context ✔️ bind() – Creates a new function with bound context These concepts helped me understand how JavaScript handles execution context internally. 💡 Key Takeaway: Functions are not just reusable blocks — they are the backbone of advanced JavaScript concepts like callbacks, higher-order functions, and object-oriented behavior. #JavaScript #WebDevelopment #FrontendDevelopment #Programming #FunctionalProgramming
To view or add a comment, sign in
-
💻 Day 89 — Mastering JavaScript Strings, Math & Date Methods Today's learning focused on some of the most commonly used features in JavaScript: String methods, Math operations, Date handling, and OTP generation logic. These concepts are essential for real-world applications such as form validation, authentication flows, text processing, and more. 🎯 What I Learned / Practiced 🔹 JavaScript String Methods — Explored powerful built-in string functions: removing extra spaces using trim(), converting text to lower/upper case, finding characters and words (charAt, indexOf, includes), splitting strings into arrays, repeating content, replacing text, and checking if a string ends with a specific character 🔹 Palindrome & Reverse String Logic — Implemented logic to check whether a given word is a palindrome and reverse a string using JS methods 🔹 Vowel or Consonant Checker — Built a simple exercise that takes a single letter, converts it to lowercase, and checks if it belongs to the vowel group 🔹 JavaScript Math Methods — Practiced using built-in mathematical functions like ceil(), floor(), round(), sqrt(), pow(), and random() for generating values; also learned how coercion happens when JS converts strings to numbers 🔹 JavaScript Date Object — Explored how to extract current date, day of the week, month index, hours, minutes, milliseconds, and timestamps; also worked with custom dates to extract structured parts 🔹 OTP Generation in JavaScript — Created two versions of OTP generation: digit-by-digit OTP using Math.random() and Math.floor(), and a clean function that generates a 6-digit OTP using a single formula 💡 Simple Example I wrote a function that generates a random 6-digit OTP by using Math.random() to create a number between 0 and 999999, then using Math.floor() to remove decimals. This concept is widely used in authentication systems like login verification and password reset flows. 🌱 Reflection / Key Takeaways Today's practice helped me sharpen skills in text processing, mathematical operations, working with dates and time, logic building, and generating secure random data. All these abilities play a huge role in building dynamic, interactive, and real-time web applications. Understanding string and math methods will be very useful when building features like search bars, validations, calculators, and authentication systems. 🔗 Links GitHub:https://lnkd.in/g6_4rknj Live Demo (Vercel):https://lnkd.in/gGMKKyEq 🙏 Thank you for the continuous guidance and support Codegnan | Uppugundla Sairam | Saketh Kallepu | Ambica Kiranmayee Bellamkonda #Day89 #FullStackDevelopment #FrontendDevelopment #JavaScript #StringMethods #MathMethods #DateObject #WebDevelopment #LearningJourney
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