This repository is a structured and comprehensive collection of JavaScript tutorials designed to help learners understand JavaScript from the ground up.
It starts with core fundamentals such as hoisting, execution context, and variable declarations, and gradually progresses to advanced concepts including closures, asynchronous JavaScript, the event loop, and functional programming techniques.
Each concept is explained with hands-on examples, clear explanations, and runnable code, making this repository ideal for:
- Beginners starting JavaScript
- Intermediate developers strengthening fundamentals
- Interview preparation and concept revision
💡 Tip: Follow the lessons in numerical order for a smooth learning progression.
| Lesson | Title | Description | Files |
|---|---|---|---|
| 03 | Hoisting in JavaScript (variables & functions) | Explains how JavaScript hoists variable and function declarations during the compilation phase. | index.html, script.js |
| 04 | How Functions Work | Demonstrates function execution, global vs local scope, and variable resolution. | index.html, script.js |
| 05 | Shortest JS Program (window & this keyword) | Covers the global object (window), the this keyword, and the minimal JS program. |
index.html, script.js |
| 06 | undefined vs not defined | Differentiates between undefined and not defined, including common mistakes. |
index.html, readme.md, scripts.js |
| 07 | Lexical Environment, Scope & Scope Chain | Explains execution contexts, lexical environments, and scope chaining. | index.html, readme.md, script.js |
| 08 | let, const & Temporal Dead Zone | Compares var, let, and const, TDZ behavior, redeclaration rules, and errors. |
index.html, readme.md, script.js |
| 09 | Block Scope & Shadowing | Covers block scope, variable shadowing, illegal shadowing, and lexical block scope. | index.html, readme.md, script.js |
| 10 | Closures | Introduces closures, lexical memory, data hiding, and encapsulation. | index.html, readme.md, script.js |
| 11 | setTimeout + Closures (Interview Questions) | Classic interview problems combining closures with setTimeout. |
index.html, readme.md, script.js |
| 12 | Closures – Advanced Interview Scenarios | Nested closures, parameters, scope chain, and real interview patterns. | index.html, readme.md, script.js |
| 13 | First-Class Functions ft. Anonymous Functions | Function declarations, expressions, anonymous functions, and first-class behavior. | index.html, readme.md, script.js |
| 14 | Callback Functions ft. Event Listeners | Callbacks, async behavior, event listeners, and main thread blocking. | index.html, readme.md, script.js |
| 15 | Asynchronous JavaScript & Event Loop | Call stack, Web APIs, callback queue, microtask queue, and event loop. | index.html, readme.md, script.js |
| 16 | JavaScript Engine – Google V8 Architecture | JavaScript engines, runtime environment, V8 internals, parsing, JIT & GC. | readme.md |
| 17 | Trust Issues with setTimeout() | Why setTimeout is unreliable, main thread blocking, and minimum delay behavior. |
index.html, readme.md, script.js |
| 18 | Higher-Order Functions ft. Functional Programming | Higher-order functions, callbacks, abstraction, and functional design. | index.html, readme.md, script.js |
| 19 | map, filter & reduce | Deep dive into map, filter, reduce with real-world and interview examples. |
index.html, readme.md, script.js |
- Basic programming knowledge
- A modern web browser (Chrome recommended)
- Optional: VS Code or any code editor
- Optional: Node.js for running scripts directly
- Clone or download this repository.
- Open any lesson folder.
- Open
index.htmlin your browser. - Open DevTools → Console to see output.
- Read the
readme.mdinside each folder for detailed explanations.
Each lesson builds on previous concepts, so following them sequentially is recommended.
By completing this repository, you will:
- Understand JavaScript execution deeply
- Master closures, scope, and asynchronous behavior
- Gain confidence in interview questions
- Write cleaner, more predictable JavaScript code
These tutorials are inspired by the “Namaste JavaScript” playlist by Akshay Saini.
🔗 Playlist:
https://youtube.com/playlist?list=PLlasXeu85E9cQ32gLCvAvr9vNaUccPVNP&si=yk7XJ6AaQbYz8fj3
Happy Coding 🚀