core topics
Shared from "Study" on Inkdown
JavaScript Core Fundamentals
1. Execution Model & Event Loop
- Call Stack
- Heap
- Execution Context
- Lexical Environment
- Microtask Queue
- Macrotask / Task Queue
- Event Loop
- Promise vs Timer Scheduling
- Event Loop Blocking
- Browser Event Loop vs Node.js Event Loop
2. JavaScript Engine, Runtime & JIT
- ECMAScript vs Runtime APIs
- JavaScript Engine
- JavaScript Runtime
- V8
- Parsing
- AST
- Bytecode
- Interpreter
- JIT Compilation
- Hot Code Paths
- Optimization
- Deoptimization
- Hidden Classes / Object Shapes
- Inline Caching
3. Scope, Closures & Runtime State
- Scope Chain
- Lexical Scope
- Closures
Captured StateStale ClosuresRetained Closuresthis BindingArrow Function this
4. Promises, Async/Await & Concurrency
- Promise States
- Microtasks
- Promise Chaining
async / await
- Parallel vs Sequential
await
- Error Propagation
- Unhandled Rejections
Promise.all
Promise.allSettled
Promise.race
Promise.any
AbortController
- Timeouts
- Cancellation
5. Memory Management
- Stack vs Heap
- Object References
- Reachability
- Garbage Collection
- Memory Leaks
- Event Listener Leaks
- Timer Leaks
- Closure Leaks
Map vs WeakMap
6. Prototype Chain & Object Model
[[Prototype]]
- Prototype Chain
- Constructor Functions
prototype
- Class Syntax
- Method Lookup
- Own Properties vs Inherited Properties
Object.create
- Prototype Pollution
7. Modules & Dependency Graphs
- ES Modules
- CommonJS
- Static Imports
- Dynamic Imports
- Named Exports
- Default Exports
- Live Bindings
- Module Caching
- Circular Dependencies
- Side-Effectful Modules
- Tree Shaking
8. Runtime Type System & Data Correctness
- Primitive Values
- Reference Values
typeof
instanceof
Array.isArray
null
undefined
NaN
Symbol
BigInt
- Number Precision
- Safe Integers
- Runtime Validation
- JSON Boundaries
- TypeScript Types vs Runtime Values
9. Mutability, Copying & State Safety
- Shared References
- Mutation
- Shallow Copy
- Deep Copy
structuredClone
Object.freeze
- Immutability
- Pure Functions
- Explicit Side Effects
- Defensive Copying
10. Streams & Backpressure
- Readable Streams
- Writable Streams
- Transform Streams
- Chunks
- Buffering
- Piping
- Backpressure
- Streaming Responses
- Large Data Handling
11. Error Handling & Failure Boundaries
throw
try/catch
- Custom Errors
Error.cause
- Async Errors
- Promise Rejections
- Operational Errors
- Programmer Errors
- Fail-Fast Errors
- Recoverable Errors
12. JavaScript Security Footguns
- Prototype Pollution
- Unsafe Object Merging
eval
- Dynamic Code Execution
- XSS Risks
- Client-Side Secret Leaks
- Unsafe Deserialization
- Dependency Supply Chain Risk
13. JavaScript Code Design Patterns
- Module Boundaries
- Pure Core, Imperative Shell
- Dependency Injection
- Factory Functions
- Strategy Pattern
- Adapter Pattern
- Middleware Pattern
- Event-Driven Design
- Explicit Side Effects
- Predictable Data Flow
- Boring, Readable Code