JavaScript powers the web with a flexible, expressive language that runs in browsers and on servers. Browse the topics below to learn step by step or jump to what you need.
Your first JS script in the browser and Node.js.
Number, BigInt, String, Boolean, null, undefined, Symbol.
let, const, var; scope, hoisting, and temporal dead zone.
const bindings, immutability vs reassignment, and Object.freeze.
if/else, switch, loops, break/continue, and try/catch.
Declarations, expressions, arrow functions, default/rest params.
Creation, iteration, transforms (map/filter/reduce), immutability.
Literals, property access, descriptors, and prototypes.
Template literals, Unicode, common methods, and performance.
ES modules (import/export), CommonJS, bundlers, and interop.
Class syntax, fields, inheritance, static, and private members.
Promises lifecycle, chaining, error handling, and utilities.
Awaiting promises, parallelism, try/catch, and pitfalls.
Iterator protocol, for..of, generators, and async iterators.
throw, Error types, try/catch/finally, and stack traces.
Selecting, manipulating, events, and best practices.
fetch API, JSON, abort signals, and error handling.
Date, Temporal (proposal), Intl for formatting and locales.
Regex literals, flags, groups, and common patterns.
localStorage, sessionStorage, cookies, and IndexedDB overview.
npm/yarn/pnpm, scripts, linting, formatting, and TypeScript.
Measure, optimize loops/allocations, and avoid layout thrash.
Modules, fs/path, process, and CLI utilities.
Jest/Vitest, assertions, mocks, and async tests.