Front-end web development
Advanced JavaScript: objects, asynchronous code and modules
Master the language's deep mechanisms to write robust, modular and maintainable code.
- 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 pitfalls
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 JavaScript
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 closures
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 loop
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 quality
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 JavaScript
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.
