Skip to content
Development JS—01

JavaScript in the browser

A course about how a page starts answering back. We take the markup you already write and add behaviour: events, working with the DOM, data from a server — without a single library. By the end the catalogue from the markup course filters, the cart lives in localStorage, and you understand every line because you wrote it yourself.

9 modules32 lessons
24 hoursof video and practice
Markup neededrequirements
Foreveraccess and updates
Format
€49 one-off payment
Place the order Open the programme
Payment by card or through PayPal
Access opens immediately after payment
14-day refund, if you have not started watching
Outcome

What you will be able to do

Bring finished markup to life: find elements and change them from code
Read an error in the console and find the cause instead of guessing
Handle a click, an input and a form submit with one handler for the whole list
Build tabs, a modal and an accordion without libraries
Filter and sort catalogue data with array methods
Fetch data from a server and honestly show loading and errors
Keep state in localStorage so it survives a reload
Come to React knowing exactly what the framework takes off your hands
Programme

9 modules, one project

Press a module to open its lessons

01 Your first script3 lessons · 2 h 16 minOpen

We attach JavaScript to a finished page and read the console from the very first lesson — because errors start before results do.

Where a script is attached and when it runs
The console: output, errors and what undefined means
Practice: the page answers its first action
02 Variables, conditions and functions4 lessons · 3 h

Basic syntax straight on page tasks: we add up a cart total and hide blocks instead of solving abstract exercises.

let, const and data types without the academia
Conditions: show, hide, restrict
Loops and iteration: when a plain for is the right tool
Functions: arguments, return values and why to extract code
03 The DOM: finding elements and changing them4 lessons · 2 h 56 min

The page as the script sees it: the node tree, finding elements and carefully changing what a person sees.

The document tree: nodes, parents and siblings
querySelector and element collections
Text, attributes, classes and styles from code
Practice: highlighting the active catalogue section
04 Events: click, input, form submit4 lessons · 2 h 52 min

How the browser reports a person's actions, and why one handler for a list beats twenty identical ones.

addEventListener and the event object
Click, input, change and form submit
Bubbling and delegation on product cards
Practice: validating an order form without libraries
05 Arrays and objects: interface data3 lessons · 2 h 20 min

The catalogue as an array of objects: we iterate, filter and sort the data, and build the markup out of it afterwards.

Arrays, objects and the catalogue data in one file
map, filter, find and sort instead of manual loops
Practice: filters and search across the catalogue
06 Widgets without libraries3 lessons · 2 h 16 min

Tabs, a modal and an accordion by hand — so you know what ready-made components actually do for you.

Tabs: markup, state and the keyboard
A modal: focus, Escape and page scrolling
An accordion that opens without the layout jumping
07 Asynchrony: promises and async/await4 lessons · 2 h 52 min

Why code does not wait, and how that stops being a mystery: timers, promises and a syntax that reads top to bottom.

Code that does not wait: the task queue and timers
Promises: then, catch and chains
async/await and handling errors with try/catch
Practice: sequential and parallel requests
08 Server data: fetch and JSON3 lessons · 2 h 12 min

We pull the catalogue from a server and honestly show the person loading, an empty answer and a dropped connection.

fetch, JSON and what actually arrives in the response
Loading, an empty result and a network error
Practice: the catalogue arrives from the server
09 localStorage, modules and the final project4 lessons · 3 h 16 min

We put it all together: the cart survives a reload, the code is split across files, the project is ready to show.

localStorage: a cart that does not disappear
Modules: splitting the script across files
Debugging: breakpoints and common mistakes
Final project: a shop that answers your actions
Materials

What you get

32 lessons with transcripts

Videos with timecodes and a written version: the code from a lesson can be copied instead of retyped off the screen.

The shop markup from course FE—01

The same project you built in «Markup without magic» — behaviour is added to your own work, not to someone else's demo.

A practice catalogue API

An address with products, a delayed response and an error mode, so you can practise loading and failure handling on live data.

Reference solutions and a cheat sheet

Finished code for every module plus cards on array methods, events and DOM work — to check against after the practice.

Dediu Pavel
Course author

Dediu Pavel

Teaches the «Web development» direction at Forma. The full list of their courses is on their page.

All courses by this author

The whole first module is open

Watch the lessons of the first module and the first task. If the format does not suit you, you have lost nothing.