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

TopicEpisodeStatus
Execution context, call stack01✅ Done
Sync vs async02✅ Done
Functions, hoisting03 – 04✅ Done
Scope chain, lexical environment05✅ Done
var / let / const, TDZ, block scope06 – 07✅ Done
Closures (and the setTimeout trap)08 – 09✅ Done
HOF, map / filter / reduce10 – 11✅ Done
Currying, memoization12 – 13✅ Done
Value vs reference14✅ Done
this, call / apply / bind, arrow fns15 – 17✅ Done
Prototypes & the prototype chain18✅ Done
Callbacks & callback hell19 – 20✅ Done
Event loop, microtask queue21✅ Done
Promises, chaining, Promise APIs22 – 24✅ Done
async / await, setImmediate25 – 26✅ Done
Every function type, debounce vs throttleDeep Dive 01 – 02✅ Done
TypeScript interview questionsBonus✅ 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!