Best for web development
This free, interactive JavaScript course covers variables, data types, functions, arrays, objects, control flow, loops, DOM manipulation, async/await, promises, modules, error handling, JSON, and HTTP requests — all by writing and running real JavaScript code in your browser.
Who this is for
Anyone who wants to build websites and web apps, aspiring full-stack developers, and engineers building modern frontend or Node.js skills.
What you'll build
Start here
Write your first JavaScript program. No setup, no config — just code and results.
Full curriculum
Write your first JavaScript program. No setup, no config — just code and results.
let, const, var — store data, change it, and understand why var is a trap.
string, number, boolean, null, undefined, symbol, bigint — and the coercion traps that catch everyone.
Master JavaScript strings — methods, template literals, formatting, and all the tricks you'll use every day.
Make decisions with if/else, switch, ternary, and JavaScript's powerful nullish coalescing and optional chaining operators.
for, while, for...of, for...in, forEach — loop over everything JavaScript throws at you.
JavaScript arrays and their powerful built-in methods: map, filter, reduce, find, and more.
JavaScript objects, property access, spread, Object methods, and the Map/Set data structures.
Function declarations, expressions, arrow functions, callbacks, default parameters, rest, and pure functions.
Block scope, function scope, the var hoisting trap, closures, and why functions remember their birth environment.
Unpack arrays and objects elegantly, rename variables, set defaults, and spread data everywhere.
ES6 classes, constructor, methods, getters/setters, static methods, and private fields.
Extend classes with extends and super, override methods, use instanceof, and know when NOT to use inheritance.
The prototype chain, Object.create, how classes work under the hood, and property lookup in JavaScript.
try/catch/finally, throw, custom error types, and building resilient code that fails gracefully.
ES Modules, CommonJS, named exports, default exports, dynamic imports, and organising real-world JavaScript projects.
Understand Promises deeply — creating them, chaining .then(), handling errors with .catch(), and combining with Promise.all and Promise.race.
Write asynchronous code that reads like synchronous — async/await on top of Promises, error handling, parallel vs sequential, and real patterns.
Iterators, generator functions with yield, lazy sequences, infinite generators, and custom iterables.
How JavaScript actually runs — the call stack, event loop, microtask queue, macrotask queue, and why setTimeout(fn, 0) isn't instant.
Make HTTP requests with fetch, handle GET/POST/PUT/DELETE, work with headers, authentication, and graceful error handling.
JSON.parse, JSON.stringify, replacers, revivers, custom serialization, and handling every edge case.
JavaScript is the language of the web — every website you visit runs JavaScript. It's the only language that works in both the browser and on the server (via Node.js). Companies like Meta, Google, Netflix, and Airbnb build their products with JavaScript. Learning JavaScript opens doors to frontend, backend, and full-stack development.
This free, interactive JavaScript course covers variables, data types, functions, arrays, objects, control flow, loops, DOM manipulation, async/await, promises, modules, error handling, JSON, and HTTP requests — all by writing and running real JavaScript code in your browser.
22 topics · 191 hands-on lessons · all levels
Anyone who wants to build websites and web apps, aspiring full-stack developers, and engineers building modern frontend or Node.js skills.