Explore the test cases before coding
Checks compare results for these examples. They do not prove correctness for every possible input or enforce a particular coding technique.
JAVASCRIPT MASTERY LAB / LEARN BY MAKING
Fifty lessons. Real JavaScript. A place to make mistakes, understand the result and try again.
const skills = [
"understand",
"experiment",
"build"
];
skills.map(skill => `${skill} →`);Checks compare results for these examples. They do not prove correctness for every possible input or enforce a particular coding technique.
Real JavaScript in a time-limited worker. Use solve(input); async is supported. No document/window, network calls or module imports. Runs stop after 2 seconds. Ctrl/⌘ + Enter runs checks.
Write your solution, then run the checks.
This reports your return value without grading or marking the lesson complete. Keep the input shape appropriate for the selected lesson.
No output yet.
TEN CHAPTERS · FIVE LESSONS EACH
Every lesson is open. A check mark means the displayed exercise tests passed at least once; it is not a certification of mastery.
SLOW THE CODE DOWN
let total = 0;
for (let i = 1; i <= n; i++) {
total += i;
}The visualizer follows this fixed loop; it does not interpret the code editor. Change n to compare the boundary cases 0, 1 and 5.
KEEP WHAT YOU LEARN
Drafts, notes and completion checks save in this browser when storage is available. Export a backup before changing devices or clearing browser data.
Download the 50-lesson handbook ↓
Read the MDN JavaScript guide ↗
Explore the existing JavaScript guide →
Explore server-side JavaScript →
This course focuses on language fundamentals and data logic used in browser features. DOM APIs, full module projects and live HTTP requests belong in a browser/project environment outside this runner.