-
Execution Context & Call Stack
- How JS code is created and executed
- Global vs Function vs Block context
- Why recursion works (and breaks)
-
Hoisting (for real, not myths)
- Creation phase vs execution phase
- var vs let vs const
- Temporal Dead Zone (TDZ)
-
The Event Loop (critical)
- Call stack
- Web APIs
- Task queue vs Microtask queue
- Why promises run before setTimeout
-
'this' Binding Rules
- Default binding
- Implicit binding
- Explicit binding (call, apply, bind)
- new binding
- Arrow function behavior
-
Prototypes & Prototype Chain
- proto vs prototype
- How inheritance really works
- Why classes are syntactic sugar
-
Closures (deep mastery)
- Lexical environment
- Private state
- Common memory leak patterns
-
Memory Management & Garbage Collection
- Stack vs Heap
- References
- Why leaks happen in JS apps
-
Shallow vs Deep Copy
- Object references
- structuredClone
- JSON pitfalls
- Immutability patterns
-
Advanced Array & Iteration
- Iterators & iterable protocol
- Generators (function*)
- Custom iteration
-
Advanced Async Patterns
- Promise chaining
- Error bubbling in async/await
- Promise.all / race / any / allSettled
- AbortController
-
Race Conditions & Concurrency
- Shared state problems
- Async bugs that pass tests
- Idempotent functions
-
Browser Rendering Pipeline
- DOM → CSSOM → Render Tree
- Reflow vs repaint
- Layout thrashing
-
Web Storage & State
- Cookies (flags, security)
- localStorage / sessionStorage
- IndexedDB
-
Security Fundamentals (non-negotiable) // already know
- XSS
- CSRF
- Same-Origin Policy
- CORS
- Trusted Types
-
Modules at Scale
- ESM loading behavior
- Circular dependencies
- Tree shaking
-
Debugging Like a Pro
- Call stack reading
- Breakpoints (conditional, async)
- Memory profiling
-
Testing Fundamentals
- Unit vs integration tests
- Mocking
- Property-based testing mindset
-
Performance Optimization
- Big-O in JS reality
- Debounce vs throttle
- Lazy loading
-
Architecture Patterns
- Functional vs OOP tradeoffs
- Composition over inheritance
- State management patterns
-
Reading the Spec (selectively)
- How to verify truth
- Where JS behavior actually comes from