Video description
"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
ES6 in Motion is a unique video course that 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. 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.
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.
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
This course is suitable for developers comfortable with using client-side JavaScript or Node.js.
Wes Higbee is an experienced teacher and developer with two decades of JavaScript under his belt.
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
Table of Contents
Welcome
Welcome
00:06:11
History and Feature Compatibility
00:06:26
Arrow Functions
Introducing Arrow Functions
00:01:28
What Do These Arrow Functions Do
00:05:53
Arrow Functions versus Function Declarations
00:06:53
Computing Tax With A For Loop
00:04:29
Array Mapping With Arrow Functions
00:07:21
Caveat Object Literals From Arrow Functions
00:03:24
Concision Key Takeaways
00:06:10
This
The Magic Of This
00:00:56
The Secret This Tunnel
00:02:45
Wishing This Were Lexically Bound
00:03:20
The Self Workaround To This
00:00:55
Understanding This Binding
00:05:31
Fixing This With Bind
00:03:10
Lexical This With Arrow Functions
00:03:24
Caveat With Bind Call and Apply
00:01:16
Lexical Takeaways
00:04:21
Block Scoping
Where Do You Prefer To Declare Variables
00:02:35
Block vs. Function Scope
00:05:32
Block Scoping With Let
00:05:09
Inadvertent Clobbering
00:02:55
Global Variable Pollution
00:02:36
No More IIFEs
00:02:27
Why You Should Declare Closer To Usage Now
00:05:20
Const
00:05:21
Takeaways
00:02:25
Strings
String Enhancements
00:00:36
Cloning and Opening The WebStorm Project
00:04:03
Why WebStorm Helps
00:02:46
Template Literals
00:05:21
Complex Expressions in Template Literals
00:01:48
Multiline Template Literals
00:06:18
Getting Functional and Injecting Multiline Expressions
00:05:30
Tagged Template Literals
00:06:47
String.raw
00:05:21
Takeaways
00:03:50
Destructuring
Destructuring
00:00:48
Object Literal Enhancements
00:04:38
From Literals To Patterns
00:03:31
Visualising Object Literals and Patterns
00:01:15
Array Patterns
00:04:03
The Key Is The Structure Of The Pattern
00:01:36
Pattern Mismatches
00:04:01
Destructuring Object Properties with a Custom Variable Name
00:02:30
Pattern Matching with Assignments
00:01:55
The Rest Parameter
00:05:20
Pattern Matching with Function Parameters
00:02:31
Safe Failures Provide Optional Matching
00:00:59
Don’t Get Crazy
00:03:27
The Pattern Structure Is The Key
00:01:23
Takeaway Challenge
00:07:23
Defaults
Patterns Everywhere
00:01:17
Default Parameter Values
00:05:34
For Of Loops and Array Prototype Entries
00:03:34
Default Values in Destructuring
00:02:38
Default Values with Arrow Function Parameters
00:04:01
Destructuring Defaults With Arrow Functions
00:05:42
Default Referring To Other Parameters And Variables
00:04:02
Scope For Defaults
00:03:53
Takeaways
00:02:07
Iteration
Iteration
00:02:28
Why Iterables
00:05:29
Custom Query Iteration
00:04:27
Refactoring To The Iterator Protocol
00:06:05
Refactor To Multiple Iterators
00:04:06
Refactor To The Iterable Protocol
00:03:04
The For Of Loop Works On Iterables
00:03:04
The Rest Operator Works on Iterables
00:02:29
The Spread Operator Works On Iterables
00:04:58
Cleaning Up Iterables with Return
00:02:28
Takeaways
00:02:13
Generators
Generators
00:00:49
Generating Positive numbers with an Iterator
00:05:17
Generators Simplify Iterators
00:04:32
Generator Objects are Iterable and Iterators
00:05:55
Debugging A Generator
00:06:56
A Generator Is Like A Series Of Functions
00:01:32
A Days Generator
00:05:48
Refactoring The Person Query To A Generator
00:02:42
Takeaways
00:04:02
Promises
Promises
00:01:27
Callbacks
00:06:21
Introducing Promises and Fetch
00:08:05
Chaining Serial Async Operations Without Nesting
00:02:20
Concise Async With Arrow Functions
00:02:43
Catching Errors
00:03:34
Understanding Error Fall Through
00:03:09
Recovering From Async Errors
00:02:29
Catching Thrown Errors Too
00:02:24
Consuming Versus Producing Promises
00:02:23
Callbacks with setTimeout
00:04:51
Postulating A Promise-Based Delay
00:04:09
Wrapping setTimeout with a Promise
00:04:46
Generator Control Flow
Generators Meet Promises
00:00:42
Passing Data When Resuming Generators
00:04:03
Yielding Promises
00:05:51
Generator Control Flow With Delay
00:02:36
Takeaways
00:06:23
Classes
Syntactic Sugar
00:01:06
HtmlTags
00:02:43
Instance Methods
00:04:40
Prototype Methods
00:04:59
Classes
00:03:10
WebStorm Refactor Constructor Function to Class
00:01:24
Class Declarations Are Not Hoisted
00:00:57
Static Methods
00:02:59
Inheritance and Prototypes
00:05:15
Prototype Chains
00:03:58
Extending Classes
00:02:53
Modules
Module Syntax
00:01:35
The Need For Modules
00:02:40
ES6 Module Syntax
00:04:52
Module Loading
00:03:48
jspm init
00:03:41
Loading Modules With SystemJS
00:01:45
Resources For Further Learning
00:06:57