JavaScript

roadmap.sh: https://roadmap.sh/javascript

Suggested path through the JavaScript nodes. Each node links to its lesson when written.

Nodes

Introduction

  • What is JavaScript
  • History of JavaScript
  • JavaScript versions (ECMAScript)
  • How to run JavaScript

All about Variables

  • var, let and const
  • Hoisting
  • Variable naming rules
  • Variable scopes (global, block, lexical)

Data Types

  • Primitive types
  • Number
  • BigInt
  • String
  • Boolean
  • Null
  • Undefined
  • Symbol
  • Object
  • typeof operator

Type Casting

  • Explicit type casting
  • Implicit type casting (coercion)
  • Type conversion vs coercion

Data Structures

  • Keyed collections (Map, WeakMap, Set, WeakSet)
  • Indexed collections (Arrays, typed arrays)
  • Structured data (JSON)

Equality Comparisons

  • Value comparison operators
  • Equality () vs strict equality (=)
  • Object.is()

Loops and Iterations

  • for
  • do…while
  • while
  • for…in
  • for…of
  • break / continue

Control Flow

  • Conditional statements (if…else, switch)
  • Exception handling (try/catch/finally)
  • Error objects

Expressions and Operators

  • Assignment operators
  • Comparison operators
  • Arithmetic operators
  • Bitwise operators
  • Logical operators
  • BigInt operators
  • String operators
  • Conditional (ternary) operator
  • Comma operator
  • Unary operators
  • Relational operators

Functions

  • Defining functions
  • Function parameters & default params
  • Arrow functions
  • IIFEs
  • arguments object
  • Scope and function stack (recursion)
  • Built-in functions

this Keyword

  • this in a method
  • this in a function
  • this in arrow functions
  • this in event handlers
  • Explicit binding (call, apply, bind)
  • Function borrowing

Asynchronous JavaScript

  • Event loop
  • Callbacks
  • Callback hell
  • Promises
  • async/await
  • setTimeout / setInterval
  • fetch API

Classes

  • Class syntax
  • Constructor
  • Inheritance (extends, super)
  • Static methods & properties
  • Private fields

Iterators and Generators

  • Iterators
  • Generators
  • Iteration protocols

Modules

  • CommonJS
  • ECMAScript Modules (ESM)
  • Import / export

Working with APIs

  • DOM APIs
  • Fetch & XMLHttpRequest
  • JSON parsing & serialization

Closures

  • Lexical scoping
  • Closures in practice

Memory Management

  • Memory lifecycle
  • Garbage collection

Using Browser DevTools

  • Debugging issues
  • Debugging memory leaks
  • Debugging performance

Resources

See resources.md.

Project ideas

  • Build a vanilla-JS to-do app with localStorage persistence and no frameworks.
  • Write a small Promise-based fetch wrapper with retry, timeout, and cancellation.
  • Implement a debounce/throttle utility library and unit-test the event-loop timing.

1 item under this folder.