O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

ES6 in Motion

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

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