JavaScript — Complete Tutorial Index
Namaste JavaScript — Complete Tutorial Index
Hey everyone! Welcome to Namaste JavaScript! 🙏
This is the complete index for the entire JavaScript series. Everything from "what even is an execution context?" to closures, the event loop, promises, prototypes and TypeScript — all in one roadmap. Bookmark this page.
JavaScript is easy to write and hard to understand. Most bugs — and most interview failures — come from not knowing what the engine is doing under the hood. So we learn every topic the same way: plain-English idea → ASCII picture → dry run by hand → the code → the gotcha → interview Q&A.
┌─────────────────────────────────────────────────────────────────┐ │ NAMASTE JAVASCRIPT — ROADMAP │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ SEASON 1 — HOW JS ACTUALLY WORKS (Episodes 01 – 07) │ │ SEASON 2 — CLOSURES & FUNCTIONAL JS (Episodes 08 – 13) │ │ SEASON 3 — OBJECTS, THIS & PROTOTYPES (Episodes 14 – 18) │ │ SEASON 4 — ASYNC JAVASCRIPT (Episodes 19 – 26) │ │ DEEP DIVES — THE HARD PARTS (Bonus episodes) │ │ │ └─────────────────────────────────────────────────────────────────┘
HOW EVERY EPISODE IS TAUGHT:
────────────────────────────
Idea in plain words → ASCII picture → Dry run by hand
→ The code → The gotcha → Interview Q&A
Legend: ✅ = ready to read 🎉 All 29 episodes are live!
SEASON 1 — How JavaScript Actually Works
"You cannot debug what you cannot picture. Let's picture the engine."
✅ Episode 01 — How JavaScript Works & Execution Context → Read Episode
✅ Episode 02 — Synchronous vs Asynchronous JavaScript → Read Episode
✅ Episode 03 — JavaScript Functions → Read Episode
✅ Episode 04 — Hoisting in JavaScript → Read Episode
✅ Episode 05 — Scope, Scope Chain & Lexical Environment → Read Episode
✅ Episode 06 — var, let & const (and the Temporal Dead Zone) → Read Episode
✅ Episode 07 — Block Scope in JavaScript → Read Episode
What this season gives you: ─────────────────────────── ✔ The Call Stack, drawn step by step ✔ Memory Creation Phase vs Code Execution Phase ✔ Why `console.log(x)` prints undefined instead of throwing ✔ Why `let` throws a ReferenceError but `var` doesn't (TDZ!) ✔ The Scope Chain — how JS finds a variable ✔ Blocks, shadowing, and illegal shadowing Key Concept: Everything in JS runs inside an Execution Context.
SEASON 2 — Closures & Functional JavaScript
"Closures are the single most-asked JS interview topic. No exceptions."
✅ Episode 08 — Closures in JavaScript → Read Episode
✅ Episode 09 — setTimeout + Closures (the classic trap) → Read Episode
✅ Episode 10 — Higher Order Functions → Read Episode
✅ Episode 11 — map(), filter() & reduce() → Read Episode
✅ Episode 12 — Currying in JavaScript → Read Episode
✅ Episode 13 — Memoization in JavaScript → Read Episode
What this season gives you: ─────────────────────────── ✔ A closure = function + its lexical environment (drawn!) ✔ The famous "loop prints 3, 3, 3" bug — and 2 ways to fix it ✔ Functions as values: passing, returning, composing ✔ map/filter/reduce — and reduce explained until it clicks ✔ Currying: f(a)(b)(c) — why anyone would do this ✔ Memoization — caching results for speed Key Concept: A function remembers where it was BORN, not where it's called.
SEASON 3 — Objects, this & Prototypes
"`this` is not hard. It's just never what you assumed."
✅ Episode 14 — Call by Value vs Call by Reference → Read Episode
✅ Episode 15 — The this Keyword → Read Episode
✅ Episode 16 — call(), apply() & bind() → Read Episode
✅ Episode 17 — Arrow Functions vs Normal Functions → Read Episode
✅ Episode 18 — Prototypes (The Complete Deep Dive) → Read Episode
What this season gives you: ─────────────────────────── ✔ Primitives copy, objects share — the bug behind 90% of "why did it change?" ✔ The 4 rules of `this` (default, implicit, explicit, new) ✔ Borrowing methods with call/apply/bind ✔ Why arrow functions have NO `this` of their own ✔ The prototype chain — how inheritance really works in JS ✔ __proto__ vs prototype (finally explained) Key Concept: `this` is decided by HOW a function is called, not where it's written.
SEASON 4 — Async JavaScript
"One thread. Millions of users. Here's the trick."
✅ Episode 19 — Callback Functions → Read Episode
✅ Episode 20 — Callback Hell → Read Episode
✅ Episode 21 — The Event Loop → Read Episode
✅ Episode 22 — Promises in JavaScript → Read Episode
✅ Episode 23 — Creating a Promise, Chaining & Error Handling → Read Episode
✅ Episode 24 — Promise APIs (all, allSettled, race, any) → Read Episode
✅ Episode 25 — async / await → Read Episode
✅ Episode 26 — setImmediate (and the Node timers) → Read Episode
What this season gives you: ─────────────────────────── ✔ Call Stack → Web APIs → Callback Queue → Event Loop (the full picture) ✔ Microtask Queue vs Callback Queue — who cuts the line ✔ Escaping callback hell (pyramid of doom → flat chain) ✔ Promise states: pending → fulfilled / rejected ✔ all vs allSettled vs race vs any — the differences that get asked ✔ async/await is just promises wearing a suit ✔ Predicting output order of any tricky async snippet Key Concept: JS never waits. It delegates, and the event loop calls you back.
DEEP DIVES — The Hard Parts
"Now the topics that separate a senior from a junior."
✅ Deep Dive 01 — JavaScript Functions: Every Type Explained → Read Deep Dive
✅ Deep Dive 02 — Debounce vs Throttle (Implement Both!) → Read Deep Dive
What you'll learn: ────────────────── ✔ Declarations, expressions, IIFE, arrow, generator, async — every form ✔ Debounce: wait until the user STOPS typing ✔ Throttle: run at most once every N ms ✔ Implementing both from scratch (a real interview round) ✔ Which one to use for search, scroll, resize and button spam Key Concept: Debounce waits for silence. Throttle enforces a rhythm.
BONUS
✅ Bonus — TypeScript Interview Questions & Answers → Read Questions
Topic Map — What Lives Where
| Topic | Episode | Status |
|---|---|---|
| Execution context, call stack | 01 | ✅ Done |
| Sync vs async | 02 | ✅ Done |
| Functions, hoisting | 03 – 04 | ✅ Done |
| Scope chain, lexical environment | 05 | ✅ Done |
| var / let / const, TDZ, block scope | 06 – 07 | ✅ Done |
| Closures (and the setTimeout trap) | 08 – 09 | ✅ Done |
| HOF, map / filter / reduce | 10 – 11 | ✅ Done |
| Currying, memoization | 12 – 13 | ✅ Done |
| Value vs reference | 14 | ✅ Done |
this, call / apply / bind, arrow fns | 15 – 17 | ✅ Done |
| Prototypes & the prototype chain | 18 | ✅ Done |
| Callbacks & callback hell | 19 – 20 | ✅ Done |
| Event loop, microtask queue | 21 | ✅ Done |
| Promises, chaining, Promise APIs | 22 – 24 | ✅ Done |
| async / await, setImmediate | 25 – 26 | ✅ Done |
| Every function type, debounce vs throttle | Deep Dive 01 – 02 | ✅ Done |
| TypeScript interview questions | Bonus | ✅ Done |
How to Use This Series
If you are a BEGINNER:
→ Go in order from Episode 01. Season 1 is non-negotiable —
everything else stands on it.
→ Dry-run every snippet on paper BEFORE running it.
If you are preparing for INTERVIEWS:
→ Closures (08), Event Loop (21), `this` (15) and Prototypes (18)
are THE four most-asked topics. Know them cold.
→ Then Promises (22 – 24) and async/await (25).
→ Finish with Debounce vs Throttle (DD 02) — a live coding favourite.
If you already write JS daily:
→ Skim Season 1, then read Season 3 and Season 4 properly.
Most working devs use `this` and promises without knowing WHY
they behave the way they do. That gap is what interviews find.
Keep coding, keep questioning! See you in the episodes!