ES6 in Motion
Wes Higbee
  • Course duration: 7h 15m
    127 exercises

This course is a fantastic dive into the features of ES6. The instructor is an expert on the material, and does a wonderful job in breaking down complex material into easy-to-understand concepts.

Peter Lawrence, Software Developer

See it. Do it. Learn it! ES6 in Motion is a unique video course that combines best-in-class video-based instruction with exercises designed to lock in what you learn. Expert developer and instructor Wes Higbee guides you through the most powerful ES6 features, like promises, arrow functions, and modules, giving you opportunities to practice and explore as you go. This self-paced tutorial includes over 7 hours of video teaching, neatly broken into digestible 5-7 minute lessons. Most video lectures drown you in words and leave you unsure if you really know what you're doing; with ES6 in Motion you'll be confident that you've learned because you can test your skills before you move on. If you've been struggling to wrap your head around ES6, or you're just looking for a fast way to level-up your JavaScript, it's time to get moving.

About the subject

ES6, aka ECMAScript 2015, is the latest JavaScript language standard, offering dozens of powerful new language features. ES6 introduces proper classes, template strings, types, full support for Unicode, and more. For developers working with Node on server-side applications, the ES6 support for promises, arrow functions, and modules is a game-changer. ES6 keeps the simplicity and reliability you love about JavaScript, and adds the high-value professional language features you've been craving.

Table of Contents detailed table of contents



History and Feature Compatibility

Arrow Functions

Introducing Arrow Functions

What Do These Arrow Functions Do

Arrow Functions versus Function Declarations

Computing Tax With A For Loop

Array Mapping With Arrow Functions

Caveat Object Literals From Arrow Functions

Concision Key Takeaways


The Magic Of This

The Secret This Tunnel

Wishing This Were Lexically Bound

The Self Workaround To This

Understanding This Binding

Fixing This With Bind

Lexical This With Arrow Functions

Caveat With Bind Call and Apply

Lexical Takeaways

Block Scoping

Where Do You Prefer To Declare Variables

Block vs. Function Scope

Block Scoping With Let

Inadvertent Clobbering

Global Variable Pollution

No More IIFEs

Why You Should Declare Closer To Usage Now




String Enhancements

Cloning and Opening The WebStorm Project

Why WebStorm Helps

Template Literals

Complex Expressions in Template Literals

Multiline Template Literals

Getting Functional and Injecting Multiline Expressions

Tagged Template Literals





Object Literal Enhancements

From Literals To Patterns

Visualising Object Literals and Patterns

Array Patterns

The Key Is The Structure Of The Pattern

Pattern Mismatches

Destructuring Object Properties with a Custom Variable Name

Pattern Matching with Assignments

The Rest Parameter

Pattern Matching with Function Parameters

Safe Failures Provide Optional Matching

Don’t Get Crazy

The Pattern Structure Is The Key

Takeaway Challenge


Patterns Everywhere

Default Parameter Values

For Of Loops and Array Prototype Entries

Default Values in Destructuring

Default Values with Arrow Function Parameters

Destructuring Defaults With Arrow Functions

Default Referring To Other Parameters And Variables

Scope For Defaults




Why Iterables

Custom Query Iteration

Refactoring To The Iterator Protocol

Refactor To Multiple Iterators

Refactor To The Iterable Protocol

The For Of Loop Works On Iterables

The Rest Operator Works on Iterables

The Spread Operator Works On Iterables

Cleaning Up Iterables with Return




Generating Positive numbers with an Iterator

Generators Simplify Iterators

Generator Objects are Iterable and Iterators

Debugging A Generator

A Generator Is Like A Series Of Functions

A Days Generator

Refactoring The Person Query To A Generator





Introducing Promises and Fetch

Chaining Serial Async Operations Without Nesting

Concise Async With Arrow Functions

Catching Errors

Understanding Error Fall Through

Recovering From Async Errors

Catching Thrown Errors Too

Consuming Versus Producing Promises

Callbacks with setTimeout

Postulating A Promise-Based Delay

Wrapping setTimeout with a Promise

Generator Control Flow

Generators Meet Promises

Passing Data When Resuming Generators

Yielding Promises

Generator Control Flow With Delay



Syntactic Sugar


Instance Methods

Prototype Methods


WebStorm Refactor Constructor Function to Class

Class Declarations Are Not Hoisted

Static Methods

Inheritance and Prototypes

Prototype Chains

Extending Classes


Module Syntax

The Need For Modules

ES6 Module Syntax

Module Loading

jspm init

Loading Modules With SystemJS

Resources For Further Learning


This course is suitable for developers comfortable with using client-side JavaScript or Node.js.

What you will learn

  • Use arrow functions to write functional code
  • Clean apps using modules, classes, and variable scoping
  • Master asynchronous programming with promises
  • Rebuild arrays and objects with destructuring

About the instructor

Wes Higbee is an experienced teacher and developer with two decades of JavaScript under his belt.

placing your order...

Don't refresh or navigate away from the page.
liveVideo $139.99
ES6 in Motion (liveVideo) added to cart
continue shopping
go to cart

Prices displayed in rupees will be charged in USD when you check out.

This is a good introduction to the new changes coming to ES6. The course is well organized and covers a very good range of topics

Vijay Patel, Front-End Engineer

A valuable addition for everyone who is fresh to JavaScript, and more seasoned developers who are not familiar with all new ES6 features.

Arne de Wall, Software Developer