JavaScript Fundamentals
Learn to program from zero by building a real expense tracker in the browser.
- 4.8 (2,140 ratings)
- 18,600 learners
- Beginner
- 6h 10m total
- Updated September 2026
What you’ll learn
- Read and write JavaScript values, variables, conditions and loops
- Write functions and understand scope and closures
- Transform lists of data with map, filter, reduce and sort
- Build interactive pages with the DOM, events and forms
- Handle asynchronous code with promises, async/await and fetch
- Organise a small app with modules and classes, and debug it
Who it’s for
You have never written a line of code, and you want to understand what the computer is actually doing when it runs one. This course starts at the very beginning, with values, variables and the console, and explains each idea by showing what JavaScript does with it, step by step, before asking you to use it.
Every lesson adds a piece to Pocket, an expense tracker that begins as a short script and ends as a small browser app with a form, a filterable list, running totals and saved data. Almost every lesson ends with an exercise you solve in the browser and check instantly, so you write real code every evening.
- Who it’s for
- Career switchers and complete beginners who have never programmed and want a solid, honest foundation in JavaScript.
- Before you start
- None. You need a computer with a modern browser; knowing a little HTML helps in section 4.
Hands-on practice
- Write JavaScript and run it in a sandbox with automatic checks.
- Edit HTML, CSS and JavaScript and see the result instantly.
- Guided exercises: spot the bug, fill the command, order the steps.
Course content
5 sections · 22 lessons · 6h 10m total
- What JavaScript Is and Where It Runs10 min
- Values, Types and Variables17 min
- Numbers, Operators and Comparisons17 min
- Strings and Template Literals16 min
- Section checkpoint5 questions
- Making Decisions: if, else and Truthiness17 min
- Loops: for, for…of and while16 min
- Functions: Declarations, Arrows and Defaults19 min
- Scope and Closures18 min
- Section checkpoint5 questions
- Arrays and Their Everyday Methods18 min
- Objects, Destructuring and Spread18 min
- Summing and Sorting: reduce and sort18 min
- Missing Values, Map and Set17 min
- Section checkpoint5 questions
- The DOM: Select, Create, Update18 min
- Events and Event Delegation17 min
- Forms and Validation17 min
- Saving Data: JSON and localStorage16 min
- Async JavaScript: Promises, async/await and fetch22 min
- Section checkpoint5 questions
- Modules: import and export15 min
- Classes16 min
- Errors and Debugging with DevTools17 min
- Building Pocket22 min
- Where to Go Next9 min
- Section checkpoint5 questions
Your instructor

Maya Chen
Senior Frontend Engineer · Verse
- 4.7 instructor rating
- 38,400 learners
- 3 courses
Maya has spent nine years building interfaces people use every day, most recently Verse's document editor, where a slow keystroke turns into a bug report within the hour. She learned JavaScript before frameworks were the default, moved to React in 2016, and picked up React Native when Verse shipped its mobile app.
What learners say
4.8
2,140 ratings
Youssef Benali
9 months ago
I'd copied JavaScript from tutorials for months without knowing what a closure was. The closures lesson made it obvious, and that week I fixed a bug in my own code because of it.
Emily Carter
5 months ago
The event loop explanation, predicting the order of console.log calls around a setTimeout and a promise, is something I now draw on whiteboards for other people.
Hamza Rahimi
3 months ago
Great DOM exercises with instant checks. The async/await part deserves one more lesson on error handling with try/catch around fetch.