Learn what JavaScript is and why it's the most popular language for building websites.
Learn JavaScript Step by Step (Without Feeling Lost)
Not sure what to learn next? This roadmap shows you exactly what to learn, from basics to advanced, one step at a time.
→ Start from the Beginner section. Complete one topic at a time. Don't skip ahead.
Beginner Level
Start here to build strong basics.
Understand how JavaScript was born and how it evolved into the language it is today.
Get your coding environment ready before you write your first line of JavaScript.
Comments
Add notes to your code that JavaScript ignores. Essential for readable, maintainable code.
Display messages in the browser using console, alert, and other output methods. Your first step to seeing JavaScript in action.
Learn how to store information in your code, like names, numbers, and more.
Understand the different kinds of values JavaScript can work with, such as text, numbers, true/false, and more.
Learn the symbols used to do math, compare values, and make quick decisions in code.
Make your code smart. Run different code depending on a condition.
Loops
Run the same block of code over and over without repeating yourself.
Functions
Group code you want to use again and again. One of the most important things in JavaScript.
Arrays
Store lists of items and learn the powerful tools to work with them.
Objects
Group related data together. That is the way most real-world data is organized in JavaScript.
Change what users see on the page. Update text, colours, and content with JavaScript.
Events
React to clicks, keypresses, and other user actions on your webpage.
Intermediate Level
Now level up your JavaScript skills.
Learn the modern shortcuts that make JavaScript cleaner and easier to write.
A shorter way to write functions. You'll see this everywhere in real code.
Pull out values from objects and arrays in one line. A modern shortcut you'll use daily.
Copy arrays, merge objects, and pass multiple arguments using just three dots.
JSON
Learn the standard format for sending and receiving data. Used in almost every web application.
Set & Map
Two ES6 data structures for storing unique values and key-value pairs more efficiently than arrays or plain objects.
Organize your code around objects and classes. A cleaner, scalable way to structure larger programs.
Closures
Learn how a function can "remember" variables from where it was created. A tricky but important concept.
Scope
Learn where your variables are available and why some work in one place but not another.
Hoisting
Understand why some variables and functions can be used before they appear in the code.
Debugging
Find and fix mistakes in your code using browser dev tools and debugging techniques.
Callbacks
Pass a function as an argument to be called later. The foundation of async JavaScript before Promises.
Promises
Handle tasks that take time, like loading data, without freezing your page.
A cleaner way to write code that waits for something, like an API call, to finish.
Catch and handle things that go wrong in your code without crashing the whole app.
Modules
Split your code into separate files and import what you need. Keeps things clean and organized.
AJAX
Load data from a server in the background without refreshing the page. The classic technique behind dynamic websites.
Fetch API
Load data from a server without reloading the page. The modern, clean way.
Working with APIs
Connect to real data sources on the internet and build things that actually do something.
Interact with the browser window itself and save data locally so it persists across sessions.
Advanced Level
Master advanced concepts step by step.
Event Loop
Learn how JavaScript runs tasks step by step behind the scenes, even when things overlap.
Call Stack
See how JavaScript keeps track of which function is running and what happens when they nest.
Understand how objects in JavaScript can share features. It is the foundation of JavaScript's object system.
Learn what happens behind the scenes every time a piece of your code runs.
Learn how JavaScript frees up memory automatically and how to avoid slowing your app down.
Learn the tried-and-tested ways professionals organize and structure their JavaScript code.
Functional Programming Concepts
Learn a different way to write JavaScript that is cleaner, more predictable, and easier to test.
Make your JavaScript faster. Reduce lag, avoid unnecessary work, and improve user experience.
JavaScript in Browser vs Node
Learn what changes when JavaScript runs in a browser versus on a server.
Web APIs
Tap into powerful browser features like real-time connections, location, and background tasks.
Web Workers
Run heavy JavaScript tasks in the background without blocking the main thread or freezing the UI.
Learn how to keep your JavaScript apps safe from common attacks and security mistakes.
Learn how to check that your code works correctly, automatically, every time you make changes.
Get familiar with the ecosystem - bundlers, linters, package managers, and build tools used in real projects.
Search, match, and replace text patterns with powerful regex syntax.
Create custom iterable sequences and control function execution with yield.
Intercept and customize fundamental object operations like property access and assignment.
Now Stop Reading. Start Learning.
Pick the first topic and begin. Every expert started exactly where you are right now.