Master JavaScript from foundational syntax and types through advanced patterns like asynchronous programming, closures, and modern ES2024+ features, gaining the skills to build robust applications in any JS runtime.
§ SYLLABUS
- 01Variables and Data Types
Understand how JavaScript stores values using let, const, and var, and learn the seven primitive types plus objects. You will know when to use each declaration keyword and how type coercion works under the hood.
- 02Operators and Expressions
Learn arithmetic, comparison, logical, and assignment operators and how JavaScript evaluates expressions. You will understand truthy/falsy values and short-circuit evaluation.
- 03Control Flow and Loops
Master if/else, switch, for, while, and for...of loops to direct program execution. You will be able to choose the right control structure for any situation.
- 04Functions and Scope
Define functions using declarations, expressions, and arrow syntax, and understand how scope determines variable visibility. You will grasp hoisting, block scope, and the call stack.
- 01Objects and Property Access
Create and manipulate objects using literal syntax, dot and bracket notation, and computed properties. You will understand reference semantics and shallow vs deep copying.
- 02Arrays and Iteration Methods
Work with arrays using map, filter, reduce, find, and other higher-order methods. You will know when to use each method and how they compose for data transformation pipelines.
- 03Destructuring and Spread/Rest
Extract values from objects and arrays with destructuring syntax, and combine or clone data with spread and rest operators. You will write cleaner, more concise code for common data manipulation patterns.
- 04Maps, Sets, and WeakRef
Use Map, Set, WeakMap, and WeakSet for specialized collection needs beyond plain objects and arrays. You will understand when these structures outperform their plain counterparts.
- 01Closures and Lexical Scope
Understand how inner functions capture variables from their enclosing scope, creating closures. You will use closures for data privacy, factory functions, and event handlers.
- 02The 'this' Keyword and Binding
Learn how the value of 'this' is determined by call site, and control it with bind, call, and apply. You will debug common 'this' pitfalls in callbacks and methods.
- 03Higher-Order Functions and Callbacks
Write functions that accept or return other functions, enabling powerful abstraction patterns. You will understand the callback pattern that underpins event handling, array methods, and async code.
- 01Prototypal Inheritance
Understand JavaScript's prototype chain and how objects delegate property lookups to their prototypes. You will see how this differs from classical inheritance and why it matters.
- 02Classes and Constructors
Use ES6 class syntax for constructors, methods, getters/setters, static members, and inheritance with extends. You will understand that classes are syntactic sugar over prototypes.
- 03Composition over Inheritance
Apply object composition and mixin patterns as alternatives to deep inheritance hierarchies. You will learn when composition leads to more flexible and maintainable designs.
- 01The Event Loop and Concurrency Model
Understand JavaScript's single-threaded event loop, the call stack, callback queue, and microtask queue. You will be able to predict the execution order of synchronous and asynchronous code.
- 02Promises
Create and chain promises to handle asynchronous operations with .then(), .catch(), and .finally(). You will understand promise states, error propagation, and Promise.all/race/allSettled.
- 03Async/Await
Write asynchronous code that reads like synchronous code using async functions and the await keyword. You will handle errors with try/catch and understand how async/await desugars to promises.
- 04Generators and Iterators
Create custom iterable objects with Symbol.iterator and use generator functions with yield for lazy evaluation. You will understand how for...of works under the hood.
- 01Error Types and try/catch/finally
Handle runtime errors gracefully using try/catch/finally, create custom error classes, and understand the built-in error hierarchy. You will write resilient code that fails predictably.
- 02Debugging Techniques
Use browser DevTools and console methods effectively — breakpoints, watch expressions, the network tab, and stack traces. You will systematically diagnose and fix bugs instead of guessing.
- 01ES Modules (import/export)
Organize code into reusable modules using import and export syntax, understanding named vs default exports, re-exports, and static analysis benefits. You will structure projects for maintainability.
- 02CommonJS and Module Systems
Understand Node.js require/module.exports, how it differs from ES modules, and the historical evolution of JavaScript module systems including AMD and UMD.
- 01Template Literals and Tagged Templates
Use template literals for string interpolation and multiline strings, and write tagged template functions for DSLs and sanitization. You will move beyond string concatenation to expressive string handling.
- 02Symbols and Well-Known Symbols
Use Symbol to create unique property keys and leverage well-known symbols like Symbol.iterator and Symbol.toPrimitive to customize object behavior. You will understand metaprogramming basics.
- 03Proxy and Reflect
Intercept and customize fundamental object operations using Proxy traps and the Reflect API. You will understand how frameworks use proxies for reactivity, validation, and access control.
- 04Optional Chaining and Nullish Coalescing
Safely access nested properties and provide defaults using ?. and ?? operators. You will write more defensive code without verbose null-checking boilerplate.
- 01DOM Selection and Manipulation
Select, create, modify, and remove HTML elements using querySelector, createElement, and the DOM API. You will understand the document tree and how JavaScript interacts with the rendered page.
- 02Event Handling and Delegation
Attach event listeners, understand the capture/bubble phases, and use event delegation for efficient handling of dynamic content. You will build interactive UIs that respond to user actions.
- 03Fetch API and HTTP Requests
Make network requests with the Fetch API, handle JSON responses, manage headers and CORS, and process errors. You will connect front-end applications to back-end services.
- 04Web Storage and Client-Side Data
Persist data in the browser using localStorage, sessionStorage, IndexedDB, and cookies. You will choose the right storage mechanism based on capacity, lifetime, and security needs.
- 01Memory Management and Garbage Collection
Understand how JavaScript's garbage collector reclaims memory, identify common memory leak patterns, and use DevTools to profile heap usage. You will write applications that perform well over time.
- 02Common Design Patterns
Apply patterns like module, observer, factory, singleton, and strategy in JavaScript. You will recognize when a pattern simplifies your architecture and when it adds unnecessary complexity.
- 03Functional Programming Patterns
Use pure functions, immutability, currying, partial application, and function composition to write predictable, testable code. You will blend functional and object-oriented styles effectively.
- 04Testing JavaScript Code
Write unit tests with frameworks like Jest or Vitest, understand assertions, mocking, and test-driven development. You will gain confidence that your code works correctly through automated testing.