Comprehensive JavaScript notes from the Namaste JavaScript series by Akshay Saini — written as real documentation, not just bullet points.
24 chapters covering JavaScript from first principles to advanced async patterns. Each chapter has an overview, detailed concept breakdowns, annotated code examples, interview questions with answers, and key takeaways.
Season 1 — Core JavaScript
- Execution Context & the Call Stack
- Hoisting,
var/let/const - Scope, Lexical Environment & Scope Chain
- Block Scope, Shadowing & the Temporal Dead Zone
- Closures — how they work, where to use them, when they leak
setTimeout+ Closure patterns (the classic interview question)- First-Class Functions, Anonymous & Named Function Expressions
- Callbacks & Event Listeners
- Asynchronous JS, the Event Loop, Microtask Queue & Starvation
- V8 Architecture — Parsing, AST, JIT, Ignition, TurboFan, Orinoco
- Higher-Order Functions & Functional Programming
map,filter, andreduce— with real examples
Season 2 — Async JavaScript
- Callback Hell & Inversion of Control
- Promises — states,
.then()chaining, solving IoC - Promise Chaining & Error Handling —
.catch()placement,.finally() async/await— how suspension works,try/catch, parallel execution- The
thiskeyword — every context,call/apply/bind, arrow functions
The best way to go through this content is the documentation app — a full-featured reading experience with sidebar navigation, a table of contents, prev/next episode links, and syntax-highlighted code blocks.
Live at: namaste-javascript.vercel.app
No setup needed — open the link and start reading.
Prefer reading on GitHub? Every chapter has its own README.md. Click any chapter below.
| # | Chapter | Topics |
|---|---|---|
| 01 | Execution Context | Memory phase, code phase, GEC, two-phase execution |
| 02 | Execution & Call Stack | LIFO, call stack trace, stack overflow |
| 03 | Hoisting | var vs function hoisting, TDZ intro |
| 04 | Functions & Variable Environments | Per-call EC, isolated memory, return lifecycle |
| 05 | Shortest JS Program, Window & this |
Global object, this at global scope, globalThis |
| 06 | undefined vs Not Defined |
Placeholder value, ReferenceError, null vs undefined |
| 07 | Scope & Lexical Environment | Scope chain, lexical scope, static vs dynamic |
| 08 | let, const & TDZ |
Block scope, TDZ, all error types |
| 09 | Block Scope & Shadowing | Compound statement, shadowing rules, illegal shadowing |
| 10 | Closures | Definition, module pattern, currying, memoization, memory leaks |
| 11 | setTimeout + Closures |
Loop problem, var vs let fix, IIFE solution |
| 12 | Closures Interview Questions | 9 questions with full answers |
| 13 | First-Class & Anonymous Functions | Statement vs expression, named, anonymous, first-class |
| 14 | Callbacks & Event Listeners | Callback pattern, DOM events, GC & removeEventListener |
| 15 | Async JS & Event Loop | Web APIs, callback queue, microtask queue, starvation |
| 16 | JS Engine & V8 Architecture | Parsing, AST, JIT, Ignition, TurboFan, Orinoco GC |
| 17 | Trust Issues with setTimeout |
Minimum delay guarantee, blocking the main thread |
| 18 | Higher-Order Functions & FP | HOF definition, pure functions, declarative style |
| 19 | map, filter, reduce |
Each method explained with examples, chaining, reduce as both |
| # | Chapter | Topics |
|---|---|---|
| 01 | Callback Hell | Pyramid of Doom, Inversion of Control |
| 02 | Promises | Promise states, .then(), solving IoC |
| 03 | Promise Chaining & Error Handling | Chaining mechanics, .catch() placement, .finally() |
| 04 | async / await |
Suspension model, try/catch, parallel with Promise.all |
| 05 | this Keyword |
All contexts, call/apply/bind, arrow functions, DOM |
| Topic | Description |
|---|---|
| Debouncing | Delay execution until input settles — search boxes, resize handlers |
| Throttling | Limit execution rate — scroll handlers, API rate limiting |
Namaste-JavaScript/
├── Chapter 01 - Execution Context/
│ └── README.md # Chapter notes (rich documentation)
├── Chapter 02 - Execution and Call Stack/
│ └── README.md
├── ... # 19 Season 1 chapters total
├── Chapter S2 01 - Callback Hell/
│ └── README.md # Season 2 chapters
├── ... # 5 Season 2 chapters total
├── Concepts/
│ ├── Debouncing/README.md
│ └── Throtling/README.md
├── Lectures Codes/ # Original JS code files from the lectures
│ ├── 01. Hoisting in Javascript.js
│ ├── 07 Closures in Javascript.js
│ └── ... # 23 code files
└── application/ # Documentation web app (Next.js)
├── app/
├── components/
├── lib/chapters.ts # Reads chapter dirs at build time
└── package.json
1. Use the live docs app (recommended) The best reading experience — sidebar, TOC, prev/next navigation, syntax highlighting. No setup. namaste-javascript.vercel.app
2. Read on GitHub
Every chapter links directly above. Click any chapter in the Content Map and read the README.md in your browser — no account or setup needed.
3. Study the code files
The Lectures Codes/ directory has the original JavaScript files from the lecture videos. Read a chapter's README.md alongside its corresponding code file for the deepest understanding.
All notes are based on the Namaste JavaScript YouTube series by Akshay Saini.
Watching the videos alongside these notes is the most effective way to learn.
Found a mistake or want to add notes for a topic not covered? Open an issue or submit a PR. All contributions are welcome.
If these notes helped you, a star on GitHub goes a long way.
Made with care by Akshad Jaiswal
