Front-end web development

Advanced JavaScript: objects, asynchronous code and modules

Master the language's deep mechanisms to write robust, modular and maintainable code.

Request this program
Duration
21 h · 3 days
Level
Intermediate
Format
On site · Remote · Blended
Max. group size
12 participants

Overview

This program is for developers who already use JavaScript and want to understand what happens under the hood: execution contexts, prototypes, closures, asynchronous programming, modules and browser APIs. It teaches how to avoid the language's classic pitfalls, structure a project into modules and debug effectively.

Who this program is for

  • Front-end and full stack developers
  • Teams taking over or refactoring existing JavaScript code
  • Developers coming from other languages

Prerequisites

  • Regular practice of JavaScript basics
  • Knowledge of the DOM and HTML/CSS

Learning objectives

  • Explain execution contexts, hoisting and the behavior of this
  • Use prototypes, classes and inheritance
  • Apply functional programming and closures
  • Master promises, async/await and the event loop
  • Organize code into modules and check it with a linter
  • Use HTML5 storage and communication APIs

Detailed curriculum

6 modules · 21 h · 3 days

Day 1
Debugging tools and language pitfalls3.5 h🛠 1 workshop
30% theory · 70% practice
  • Debugging with browser and editor tools
  • Weak typing and implicit conversions
  • Hoisting, scope and global context
  • Strict mode and frequent errors
  • Comparisons and falsy values
🛠 Hands-on workshops
Bug hunt1.5 h

Fix a set of scripts containing typical bugs.

✅ Deliverable : A list of explained, fixed bugs
Object-oriented programming in JavaScript3.5 h
50% theory · 50% practice
  • Object literals and constructor functions
  • Prototypes and the prototype chain
  • Classes, inheritance and private fields
  • Getters, setters and encapsulation
  • Composition over inheritance
Day 2
Functional programming and closures3.5 h🛠 1 workshop
30% theory · 70% practice
  • Anonymous functions, arrow functions and IIFEs
  • Closures and private state
  • map, filter, reduce and chaining
  • Pure functions and immutability
  • Currying and composition
🛠 Hands-on workshops
Functional toolbox1.5 h

Write a small library of functional utilities.

✅ Deliverable : A tested library
Asynchronous code and the event loop3.5 h🛠 1 workshop
30% theory · 70% practice
  • Call stack, message queue and event loop
  • Promises and chaining
  • async/await and error handling
  • Promise.all, race and allSettled
  • Cancellation and timeouts
🛠 Hands-on workshops
Robust API client1.5 h

Write an API call module with retry on error.

✅ Deliverable : A reliable API client
Day 3
Modules and code quality3.5 h🛠 1 workshop
30% theory · 70% practice
  • ES modules: import and export
  • Organizing a project into modules
  • Linter and formatter
  • Naming and structure best practices
  • Bundlers: principles
🛠 Hands-on workshops
Refactoring into modules1.5 h

Split a monolithic script into modules.

✅ Deliverable : A modular project
HTML5 APIs and server-side JavaScript3.5 h
50% theory · 50% practice
  • Form validation and local storage
  • IndexedDB, WebSockets and service workers: overview
  • JavaScript in the browser or in Node.js
  • Write a small REST server
  • Recent language features

Tools and technologies

JavaScriptNode.jsVisual Studio Code

Teaching methods

  • Alternating short lectures and hands-on work
  • Live demonstrations by the trainer
  • Capstone project built throughout the modules
  • Group corrections and discussion of best practices

Assessment

  • Hands-on exercises corrected in each module
  • Mini-project completed at the end of the course
  • Knowledge-check quiz

Required equipment

  • A computer with an internet connection
  • A code editor, a recent browser and Node.js

Resources provided

  • Course materials and repository of corrected exercises

Career outcomes

  • More reliable, better-structured code
  • Ease with modern frameworks
  • Ability to debug subtle bugs

Related video courses

My video courses that go with this program, to get ready for the training or to review afterwards. Free with an account.