JavaScript
From programming basics and DOM interaction to a complete frontend project with JavaScript.
16 chapters · 128 lessonsBeginner friendlyFreeRuns in the browser
What you will learn
- Understand basic program outputs and values.
- Store data with const and let and use text, numbers, and booleans.
- Map decisions using if/else and logical operators.
- Write reusable logic with parameters and return values.
- Systematically find syntax and logic errors in simple programs.
- Create, modify, and evaluate collections of data.
- Process lists using loops, map, and filter.
- Structure and model related values in objects.
- Select and modify HTML structures using JavaScript.
- Securely render catalog data into the user interface.
- React to clicks, inputs, and forms.
- Separate application state and build a shopping cart.
- Store data in the browser and handle invalid states.
- Load data asynchronously and manage loading and error states.
- Organize larger scripts into modules and coordinate them.
- Test, document, and ship the finished catalog.
Course content
Chapter 1 First Steps and Expressions
Understand basic program outputs and values.
- Welcome to JavaScript
- Computing with Numbers
- Concatenating Strings
- Fixing Syntax Errors
- Logical Expressions and Comparisons
- Comments and Documentation
- Debugging Expressions
- Mini Project: Output Calculator
Chapter 2 Variables and Data Types
Store data with const and let and use text, numbers, and booleans.
- Declaring Variables with let
- Constants with const
- Overview of Data Types
- Fixing Type Conflicts
- Booleans and Conditions
- Template Strings with Variables
- Debugging Variable Names
- Mini Project: Profile Generator
Chapter 3 Conditions and Rules
Map decisions using if/else and logical operators.
- The if Condition
- Decisions with else
- Multiple Cases with else if
- Logical Operators (AND / OR)
- Negation with the Exclamation Mark
- Nested Conditions
- Debugging Conditions
- Mini Project: Age and Ticket Calculator
Chapter 4 Functions and Logic
Write reusable logic with parameters and return values.
- Declaring and Calling Functions
- Parameters and Arguments
- Returning Results with return
- Fixing Faulty Function Calls
- Arrow Functions
- Combining Functions with Conditions
- Debugging Scope and Variables
- Mini Project: Modular Calculator
Chapter 5 Debugging and Code Quality
Systematically find syntax and logic errors in simple programs.
- Understanding Types of Errors
- Using Console Output for Debugging
- Reading the Call Stack and Error Messages
- Code Formatting and Readability
- Validating and Securing Inputs
- Testing with Sample Data
- Debugging Complex Logic
- Mini Project: The Code Detective
Chapter 6 Arrays and Lists
Create, modify, and evaluate collections of data.
- Introduction to Arrays
- Array Length and Properties
- Adding and Removing Elements
- Fixing Faulty Array Accesses
- Searching and Checking in Arrays
- Combining Arrays with Functions
- Debugging Nested Arrays
- Mini Project: Dynamic Task List
Chapter 7 Loops and Transformations
Process lists using loops, map, and filter.
- The for Loop
- Looping Over Arrays
- The while Loop
- Avoiding Infinite Loops
- Array Transformation with map
- Filtering Arrays with filter
- Debugging Loops and Filters
- Mini Project: Data Pipeline
Chapter 8 Objects and Data Models
Structure and model related values in objects.
- Introduction to Objects
- Accessing Properties
- Modifying and Extending Objects
- Fixing Faulty Object Access
- Methods in Objects
- Storing Objects in Arrays
- Debugging Data Models
- Mini Project: Product Catalog
Chapter 9 The DOM and Elements
Select and modify HTML structures using JavaScript.
- Introduction to the DOM
- Selecting Elements with querySelector
- Modifying Text Content with textContent
- Fixing Faulty Selectors
- Reading and Writing HTML Attributes
- Controlling CSS Classes with classList
- Debugging DOM Manipulations
- Mini Project: DOM Greeting Box
Chapter 10 Dynamic Rendering
Securely render catalog data into the user interface.
- Generating HTML Structures from Data
- Clearing and Filling Existing Containers
- Rendering Lists into the DOM with Loops
- Fixing Faulty DOM Insertions
- Security Considerations with innerHTML
- Creating Elements with createElement
- Debugging Dynamic Rendering
- Mini Project: Dynamic Product Catalog
Chapter 11 Events and Interaction
React to clicks, inputs, and forms.
- Introduction to Event Listeners
- Using the Event Object
- Input Fields and Input Events
- Forms and preventDefault
- Processing Keyboard Events
- Attaching Events to Multiple Elements
- Debugging Event Bindings
- Mini Project: Interactive Form
Chapter 12 State and Application
Separate application state and build a shopping cart.
- What is Application State?
- Keeping State and UI in Sync
- Modifying State with Actions
- Fixing Faulty State Updates
- Combining Multiple State Properties
- Implementing Shopping Cart Logic
- Debugging State Inconsistencies
- Mini Project: Interactive Shopping Cart
Chapter 13 Persistence with LocalStorage
Store data in the browser and handle invalid states.
- Introduction to LocalStorage
- Serializing Objects with JSON
- Loading State on Startup
- Catching Corrupted JSON Data
- Fallback Values for Empty Storage
- Auto-Saving on Changes
- Debugging Persistence Conflicts
- Mini Project: Persistent Shopping Cart
Chapter 14 Asynchronous Code and Fetch
Load data asynchronously and manage loading and error states.
- Introduction to Asynchronous Operations
- Working with Promises
- Fetching Data with the Fetch API
- Using Async and Await
- Error Handling in Network Requests
- Managing Loading and Status Indicators
- Debugging Asynchronous Operations
- Mini Project: API Data Loader
Chapter 15 Project Architecture and Modules
Organize larger scripts into modules and coordinate them.
- Introduction to ES Modules
- Exporting Functions with export
- Importing Functions with import
- Default Exports and Aliasing
- Architecture and File Separation
- Avoiding Circular Dependencies
- Debugging Module Paths
- Mini Project: Modular Application
Chapter 16 Completion and Project Readiness
Test, document, and ship the finished catalog.
- Frontend Quality Assurance
- Unit Tests for Logic Modules
- Edge Cases and Robustness
- Performance Optimization and Code Hygiene
- Documentation and JSDoc
- Deployment Preparation
- Debugging the Complete System
- CapStone Project: The Complete Web App
How each lesson works
No hour-long videos. Each lesson is a short loop you complete yourself, until the idea sits.
Read
A short explanation and one clear task. Just enough to get going.
Write
You type the code yourself, in a real editor right in the browser.
Run
Run it and see what your program actually does, straight away.
Check
Check tells you whether the task is solved, and what is missing if not.
Good to know
- Nothing to install: editor, output and checks run in your browser tab.
- Start as a guest without an account; your progress stays on this device.
- A free Ostrae account syncs progress and settings across devices and unlocks the MICA coach.