Modern JavaScript in Practice
Like Duolingo, but for Modern JavaScript in Practice. Tomo turns the whole topic into a game you play five minutes a day, until it actually sticks.
For the part of you with thirty open tabs that never became anything.
Free forever · No credit card · iPhone & Android

Key ideas in Modern JavaScript in Practice
- Events bubble up from the child to the parent container automatically
- Data attributes store configuration or state directly in the HTML markup
- The event.target property identifies the specific element that was clicked
- The dataset object maps data attributes to camelCase Javascript properties
- A single listener on the parent handles elements added to the DOM later
- Javascript reads these values to sync UI state with application logic
- Applying event delegation to handle dynamic list items
- Accessing state stored in data attributes via the dataset API
- The .content property holds the template's document fragment
- importNode or cloneNode creates a live instance of the dormant markup
- Templates do not render or load resources until they are cloned
- The sequence for instantiating a template tag
- Scroll events fire constantly and can cause significant layout jank
- Intersection Observer triggers a callback only when thresholds are crossed
- The browser optimizes visibility checks outside of the main execution loop
- Understanding the performance benefit of Intersection Observer
You've tried the other tabs
Thirty open tabs. Four facts you actually kept.
You watched. You nodded. By Sunday it was gone.
One answer, then back to scrolling.
Eight weeks. You meant to finish. You didn't.
Tomo gives Modern JavaScript in Practice the Duolingo treatment: levels, streaks, and quick quizzes that test what you just learned. That game loop is what the tabs above never had, so it's the one you actually finish.
Here's what playing it feels like
A real question from this course. Take your best guess.
Where is the most common place to store custom UI state or configuration values using data attributes?
Get it right to open this lesson and 8 more in the app.
Where Modern JavaScript in Practice takes you
Move beyond basic syntax to build high-performance, interactive web components. Learn the professional patterns used to manage state, handle asynchronous data, and manipulate the DOM with precision.
- 1
Building Interactive Components
- Dynamic UI with Modern DOM Patterns
- Resilient Asynchronous Workflows
- 2
Architecture and Performance
- State Management and Logic Flow
2 sections · 3 units · 9 levels. Built to play, not to enroll.
You pick the voice
Modern JavaScript in Practice is taught in the The Bestie style: your friend who just gets it. Want a different feel? In the app you can spin up the same topic in any of Tomo's teaching styles. Same facts, totally different vibe.
More Technology on Tomo
Robots and Digital Companions
Bridge the gap between code and the physical world by building intelligent machines and responsive digital friends. Learn to program sensors, movement, and personality from the ground up.
Distributed Systems: The Architecture of Scale
Master the patterns and trade-offs required to build reliable software across multiple machines. Learn the standard terminology and mental models used by senior engineers to solve the hardest problems in modern infrastructure.
Helicopter Flight: From Lift-off to Landing
Go from curious observer to mastering the complex coordination required to pilot a rotary-wing aircraft. This course covers everything from the physics of the hover to advanced emergency maneuvers and high-altitude operations.
Modern Front-End Architecture
Move beyond basic HTML and CSS to build scalable, high-performance web applications. Learn to architect components, manage complex state, and optimize the user experience like a professional engineer.
Leonardo’s Machines
Go beyond the sketches to master the engineering principles, mechanical logic, and visionary designs of history’s most famous polymath.
Splicing Cables and Wires
Learn to create secure, safe, and professional electrical connections. This course covers everything from basic wire twisting to weatherproofing and soldering for permanent repairs.
Start Modern JavaScript in Practice today.
Download Tomo, search Modern JavaScript in Practice, and play your first lesson in under a minute.