Javascript Mastery
Javascript Mastery
📌 Build: Counter factory function using closure. Try returning multiple counters from
Day 2 (Apr 23): Closures, Scope Chain, Lexical Environment
Day 3 (Apr 24): this Keyword & Binding (call, apply, bind)
📌 Exercise: Rebind a method to different objects. Manually implement a custom
version of bind.
📌
Day 4 (Apr 25): Prototypes & Prototype Chain
Build: Custom constructor function and simulate inheritance using __proto__ or
Object.create.
📌
Day 5 (Apr 26): ES6+ Features (spread/rest, destructuring, optional chaining, etc.)
Exercise: Refactor an old script using modern syntax. Create a utility file using map,
reduce, optional chaining.
📌
Day 6 (Apr 27): Functional Programming in JavaScript
Build: Your own versions of map, filter, and reduce. Avoid mutation.
async/await.
📌
Day 10 (May 1): Error Handling Patterns
Exercise: Write a retry function with exponential backoff for an unreliable API call.
📌
Day 11 (May 2): Generators & Iterators
Build: A custom range iterator using Symbol.iterator. Yield values conditionally.
📌
Day 13 (May 4): Debounce & Throttle
Build: Debounced input search, and a throttled scroll position tracker. Use lodash for
reference.
📌
Day 14 (May 5): Review + Mini Project
Build: Weather App with OpenWeatherMap API (with loading states and error
handling).
📌
Day 16 (May 7): Design Patterns (Factory, Module, Singleton, Observer)
🔧
Exercise: Implement 3 classic patterns.
Tip: Use a logger singleton, a factory for creating users, and observer for notification
events.
📌
Day 17 (May 8): Modules & Bundlers (ESM, CommonJS, Webpack/Vite)
Exercise: Create a small app with module imports and bundle it using Vite.
📌
Day 18 (May 9): Error Handling, Logging & Debugging
Setup: Create a global error handler. Use try...catch, window.onerror, and
console styling.
📌
Day 19 (May 10): Performance Optimization
Exercise: Lazy-load images, memoize expensive functions, optimize loops. Use
requestIdleCallback.
📌
Day 20 (May 11): Reusable & Testable Code
Exercise: Refactor a utility module to have 100% unit test coverage with Jest.
📌 Task: Take a previous project (e.g., Todo or Weather App) and clean up
Day 21 (May 12): Review + App Refactor
📌 Build: A notepad that saves to localStorage, with background saving via Web
Day 23 (May 14): Advanced Browser APIs – LocalStorage, Web Workers
Worker.
📌
Day 24 (May 15): Dev Tools Mastery
Exercise: Use Chrome DevTools to audit page performance and memory. Try
performance.mark.
📌
Day 25 (May 16): TypeScript for JS Developers
Refactor: Migrate one of your JavaScript apps to TypeScript. Focus on typing
functions and interfaces.
📌
Day 26 (May 17): Testing in JS (Jest, Testing Library)
Build: Write tests for form validator or weather app using Jest and Testing Library.
📌 Build: Tiny virtual DOM renderer and reactivity system to simulate React or Vue
Day 27 (May 18): Build a Mini Framework (Optional Challenge)
basics.
📌
Day 28 (May 19): Architecture & System Design
📌
Study: MVC, MVVM, and modular JS architecture.
Task: Diagram architecture of one of your projects.
📌
Day 29 (May 20): Interview Questions & Algorithms
Practice: Solve 3 JavaScript problems from LeetCode, HackerRank, or
FrontendExpert.
📌
Day 30 (May 21): Final Project & Portfolio Boost
Build: Choose a capstone project (e.g., eCommerce cart, admin dashboard, or
📌
real-time chat).
Polish: Add README, host on GitHub, and deploy to Netlify/Vercel.