
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Learn the latest JavaScript ES6 features and how to set up a build system to compile ES6, with hands-on practice of arrow functions, destructuring, spread, promises, proxies, and generator functions.
Learn arrow functions in JavaScript ES6, compare them to regular functions, and master this binding with examples like a sum function and setInterval-based ball animation.
Explore function scope, block scope, and constants in JavaScript ES6, and master debugging by tracing temporal dead zones, arrow functions, and console outputs.
Solves three exercises on default arguments in JavaScript, demonstrating default delay handling with setTimeout, default parameters with line numbering, and the interaction of default values with the arguments object.
Explore ES6 classes through hands-on solutions for a 10 by 10 game with player and non-player characters, including movement, collisions, and a five-second game loop.
Master destructuring in JavaScript ES6 through object property shorthand and destructuring assignments. Learn how pattern matching, default values, and function arguments enable concise, robust data handling.
Learn to clone arrays and objects using spread and rest, compare shallow and deep copies, and apply destructuring with the spread operator across practical exercises.
Explore object and function enhancements in ES6, including strict equality nuances, mixins and object.assign semantics, computed properties, concise method syntax, and get/set prototypes for cleaner, modular code.
Learn four ES6 object exercises, including mapping with default values via arrow functions and Object.assign, and building a basket prototype with clear basket, get basket value, and pay methods.
Explore ES6 functions, default arguments, class syntax, and rest parameters, then analyze the stack and heap, recursion, and tail call optimization for efficient JavaScript.
Implement a stack class with a constructor and array-backed push and pop. Compare recursive and iterative Fibonacci using accumulators and discuss class and prototype concepts.
Explore the for...of loop to iterate arrays, strings, and node lists, access values directly, and handle unicode with utf-32; use destructuring and template literals within the loop.
Practice the for...of loop to gather heading text, concatenate characters, and form strings, and convert hex codes to characters using code points for emoji.
Explore string manipulation and template literals in ES6, covering server- and client-side rendering, unicode handling, and practical methods like startsWith, includes, and repeat through template tag functions.
Master strings and template literals by building a departures table with defaults and map-driven rows, then transform substitutions to uppercase and render hex digits as characters.
Understand the latest features JavaScript has to offer so that you can
Unlike many other courses, you will not only learn the main features of ES6, but you will also know when to use them. After all, knowing generator functions or promises won't bring you forward. Discovering how to use lazy evaluation and how to call an API GET request elegantly will make a difference for you.
The course focuses on practical use cases and exercises. After a short, concise summary, you will get a chance to solve some exercises, and check my reference solutions.
ES6 in Practice is not only about ES6. As a side-effect, you will boost your problem solving skills by tackling meaningful problems in practice.