Accelerated ES6 JavaScript Training
4.7 (1,056 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
7,128 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Accelerated ES6 JavaScript Training to your Wishlist.

Add to Wishlist

Accelerated ES6 JavaScript Training

Learn and Use the Future of JavaScript - today
4.7 (1,056 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
7,128 students enrolled
Last updated 7/2017
Price: $110
30-Day Money-Back Guarantee
  • 6 hours on-demand video
  • 16 Articles
  • 12 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Understand and Use the new Features and Concepts introduced with ES6
  • Get an Overview over the Language Additions and Changes
  • Confidently apply the new Syntax, new APIs and other new Features in Web Applications
View Curriculum
  • Basic to advanced JavaScript knowledge or resources on ES5 JavaScript follow along, are required
  • Basic Web Development Skills (HTML, CSS, JavaScript) are assumed
  • Advanced JavaScript Knowledge is a Plus

Prepare for the Future of JavaScript!

The next Version of JavaScript, ES6 (ECMAScript 6), is the next big thing in the World of JavaScript! It adds tons of new Features, Methods, Objects and Helpers and the earlier you feel confident using them, the better!

Get the All-In-One Package Today!

This course follows a hands-on, example-driven approach to show and explain all the important Features added to JavaScript. This includes important Syntax Changes and Additions like let, const, RestSpread Operators and continues with Promises, the Reflect API, the Proxy API, MapsSets, Tons of new Methods and Functions and much more!

At the End of the Course, we'll even build a complete Project, using many of the new Features shown throughout the Course!

Benefit from my Knowledge as both, a freelance Web Developer and a 5-Star Instructor

As a freelance Web Developer, using JavaScript is my day-to-day work and therefore I always found it annoying the ES6 Resources are scattered out all over the Web. I created this Course to share my Knowledge on ES6 with you!

I love passing my Knowledge to other People and my various, 5-star rated Courses here on Udemy as well as my successful YouTube channel are the best proof of that. 

Who is the target audience?
  • Students who have experience with "current-generation" JavaScript (ES5) and know the basics of the language
  • Students also taking my JavaScript Bootcamp course to have a nice follow-up on it
  • Everyone interested in the new Features and Additions, ES6 brings to JavaScript
Compare to Other JavaScript Courses
Curriculum For This Course
114 Lectures
6 Lectures 09:36

Let me give you an introduction to this course and its content!

Preview 03:26

What does ES5 and ES6 mean? This lecture answers this question.

Preview 01:23

I use a very "hands-on" format in this Course. Learn more about it, in this lecture.

Preview 01:28

JSBin & ES6

ES6 isn't natively supported by all Browser yet, or at least not all Features are. It's important to know which Features may or may not be used. This compatibility chart should be helpful to you.

ES6 Compatibility with Browsers

Learn how to use ES6 today!

Using ES6 Today
Syntax Changes & Additions
16 Lectures 01:04:24

The "let" keyword is a brand-new addition to JavaScript and whilst it allows us to create variables like "var" does, it also introduces "Block Scope" to JavaScript. What all that is? Have a look at this lecture to learn more!

Preview 04:57

Besides "let", "const" was added to make the declaration of constants easy.

Preview 03:31

With let & const, Hoisting changed a bit in ES6, learn how it changed, with this lecture.

Hoisting in ES6

ES6 introduces a new way to write Functions - the (Fat) Arrow Syntax. Learn how it works and what's special about it, in this lecture.

Preview 07:46

Besides a different Syntax, (Fat) Arrow Functions introduce one huge new feature/ change to functions. Learn which change it is, with this video.

(Fat) Arrow Functions and the "this" Keyword

This lectures teaches you how to set and work with Default Parameters in JavaScript Functions.

Functions and Default Parameters

When creating Objects with the Literal Notation, you now got some new tools available. Learn more in this lecture.

Object Literal Extensions

A couple of new operators were added with ES6, one important one is the Rest Operator, which is explained in this lecture.

The Rest Operator

Closely related to the Rest Operator, the Spread Operator is another new operator added with ES6. This lecture shows you how to work with it.

The Spread Operator

A new Loop was added with ES6. Learn all about it in this lecture.

The for-of Loop

There's also a new way to create (complex) strings. This lecture dives into Template Literals and gets you going with them.

Template Literals

A new concept was added with ES6: Destructuring. Learn more about it and see how it is used with Arrays, in this lecture.

Destructuring - Arrays

Like Arrays, Objects may be destructured as well.  Learn more about it, in this lecture.

Destructuring - Objects

Time to summarize Destructuring and tie all things together.

Destructuring - Summary

A quick wrap up of this module.

Wrap Up

Module Resources
Modules & Classes
17 Lectures 43:41

Let me give you a brief module introduction and explain what Modules and Classes are.


Alternative Plunker Setup

As ES6 doesn't run natively in the Browser yet, we need to set up some things in our workspace before we can use Modules. This lecture shows the necessary steps.

Modules Setup

Time to dive into Modules and cover their basics.

Modules Basics

There are different ways to export or import code with ES6 Modules. This lecture shows and explains the different ways to do it.

Import & Export Syntax

There are some important things to know, when working with ES6 Modules. Have a look at this article to quickly understand it.

Modules - Strict Mode and Global Scope

Classes make the creation of Object Blueprints even easier than before. Learn how to work with classes, in this lecture.

Class Basics

It's important to understand how Classes work together with Prototypes. This lecture will get you there.

Classes & Prototypes

A big feature of ES6 is, that the classes may also inherit from each other. This lecture shows how that works.


With ES5, Prototypes were the way to implement Inheritance in JavaScript. With Inheritance now also available with the ES6 classes, the question is how both concepts are related. This lecture dives into that question.

Inheritance & Prototypes

ES6 classes may also expose static methods which can be used without instantiating a class. This lecture explores this concept.

Static Methods

Time to combine Classes and Modules and see how both concepts work together.

Classes & Modules

You may also encapsulate certain properties in your classes and use Getters and Setters for that.

Getters & Setters

You may not only extend your own Classes, you can also extend built-in Objects. This lecture dives into that concept.

Extending Built-in Objects

Learn which built-in Objects may be extended.

Extendable Built-in Objects

A quick module wrap up.

Wrap Up

Module Resources
6 Lectures 18:25

Let me give you a brief introduction to this modules and ES6 Symbols.

Preview 02:10

What are Symbols? This lecture answers this question.

Preview 04:31

We just learned that Symbols provide a unique ID. But there's also the possibility of sharing one ID over multiple Symbols. How and why? Have a look at this lecture.

Shared Symbols

Let's have a look at the advantages (unique) IDs/ Symbols offer us.

Advantages of (unique) IDs / Symbols

Built-in Objects in JavaScript use Symbols and we can take advantage of those "well-known" Symbols. This lecture dives deeper into this topic.

Well-Known Symbols

Module Resources
Iterators & Generators
8 Lectures 24:06

A quick module introduction.


Let's dive into Iterators first. This lecture gives you the basics about them.

Iterator Basics

Now that we know what Iterators are, it's important to see them in action. This lecture will do just that.

Iterators in Action

The cool thing about Iterators is, that we can use them in our own objects. Learn how to do that, with this lecture.

Creating a Custom, Iterateable Object

Iterators are one half of that module, Generators are the other. What are Generators? Have a look at this lecture to learn more.

Generators Basics

As with Iterators, it's best to see Generators in Action and also learn how they are related to Iterators.

Generators in Action

What if you wanted to control the execution flow of your Iterator? You can do that with throw() and return(), as this lecture shows.

Controlling Iterators with throw and return

Module Resources
8 Lectures 18:24

Let me introduce the concept of Promises and this module to you.


The first important step is to understand how Promises are created and how to work with them. This lecture explores those topics.

Creating & Resolving Promises

A Promise might not be resolved due to various reasons, therefore, you can also reject it. Learn how, in this lecture.

Rejecting Promises

What's better than one Promise? Multiple Promises, used together! 

Chaining Promises

You already learned how to reject Promises and handle that case. But there's also another way to handle rejected Promises. This lecture shows which way I mean.

Catching Errors

There exist some cool, built-in methods for Promises. Learn more about them, in this lecture.

Built-in Methods - All and Race

A quick wrap up of the concepts learned in this module.

Wrap Up

Module Resources
Extensions of Built-in Objects
9 Lectures 35:37

A quick module introduction.


The built-in Object object received some additions and new features. Learn more about it in this lecture.

The Object

The Math Object also saw some additions. Let's dive into some of them!

The Math Object

There are now even more things you can do with Strings in JavaScript. Let's have a closer look in this video.


You already guessed it, the Number Object also has some new tricks to show. Let's have a look at them.

The Number Object

Arrays got loads of new features and methods, time to have a look at them.

Arrays (1/2)

Arrays got loads of new features and methods, time to have a look at them.

Arrays (2/2)

A quick module wrap up.

Wrap Up

Module Resources
Maps & Sets
12 Lectures 28:54

Let me give a brief introduction to Maps and Sets and this Module in general.

Preview 01:02

How does a Map work, how is it created and how can you add items to it? This lecture answers these questions.

Preview 02:42

We got items in the Map. And now what? There are a couple of ways to work with those items. This lecture explores your possibilities.

Maps - Managing Items

As a Map is a collection, you may loop through it. This lecture shows how.

Maps - Looping through Maps

Time for a quick summary of the concepts learned and the Map Object.

Maps - Wrap Up

Besides the Map, there also is the WeakMap. What's that? This lecture explains it, as well as the differences between the "normal" Map and the WeakMap.

The WeakMap

Besides Maps, Sets are another new form of Collections in ES6. Let's learn what they are, how they work, how to create a Set and how to add items to it.

Sets - Creation and Adding Items

Like Maps, Sets also don't hold Items to then do nothing with them. Therefore, let's have a look at the interaction possibilities we have.

Sets - Managing Items

Of course you may also loop through sets. There's an interesting behavior, as we will see in this lecture.

Sets - Looping through Sets

Let me summarize the different concepts learned.

Sets - Wrap Up

We not only have Maps and WeakMaps, we also have WeakSets. Not what's that? Learn more, in this lecture.

The WeakSet

Module Resources
The Reflect API
10 Lectures 38:18

A quick module introduction.


The Reflect API offers you a method to create objects. Yet another way? Yes, but you'll also learn why it has this method.

Creating Objects with Reflect.construct()

You may also call functions with the Reflect API. Why and how? Have a look at this lecture.

Calling Functions with Reflect.apply()

The Reflect API also offers some new methods to work with Prototypes. Learn which methods that are and how you may use them.

Reflect and Prototypes

See how you can combine the various Reflect API methods discussed until now.

Reflect.construct(), apply() and Prototypes Interaction

 You may also access Properties through the Reflect API. Learn more, in this lecture.

Accessing Properties with Reflect

Accessing Properties is great, but what if you want to find out which Properties an object has? The ownKeys() method might be helpful!

Analyzing Objects with Reflect.ownKeys()

Accessing Properties, analyzing Properties - can we also create and delete Properties? Of course we can!

Creating & Deleting Properties with Reflect

You can also control if an Object should be extendable or not. Additionally, I'll give a short wrap up of that module.

Preventing Object Extensions & Wrap Up

Module Resources
The Proxy API
9 Lectures 23:59

What are Proxies? And why might they be useful? This lecture will answer these questions.


So, Traps are an important part of Proxies. Let's see how they actually work.

Traps in Action

I mentioned it all the time: Proxies and the Reflect API work together very well. Let's see that in action.

Proxies and Reflect

Now we're getting fancy - you may use Proxies as Prototypes. This lecture shows you how to do that.

Using Proxies as Prototypes

We're getting even fancier - you can also wrap Proxies! Why and how? Let's have a look.

Proxies as Proxies

Back to "more normal" use cases. You may also wrap functions, not only objects.

Wrapping Functions

Sometimes, you only temporarily want to use a Proxy. For such an use case, you may use revocable Proxies.

Revocable Proxies

A quick module wrap up.

Wrap Up

Module Resources
2 More Sections
About the Instructor
Maximilian Schwarzmüller
4.7 Average rating
49,904 Reviews
151,038 Students
16 Courses
Professional Web Developer and Instructor

Experience as Web Developer

Starting out at the age of 13 I never stopped learning new programming skills and languages. Early I started creating websites for friends and just for fun as well. This passion has since lasted and lead to my decision of working as a freelance web developer and consultant. The success and fun I have in this job is immense and really keeps that passion burningly alive.

Starting web development on the backend (PHP with Laravel, NodeJS) I also became more and more of a frontend developer using modern frameworks like Angular or VueJS 2 in a lot of projects. I love both worlds nowadays!

As a self-taught developer I had the chance to broaden my horizon by studying Business Administration where I hold a Master's degree. That enabled me to work in a major strategy consultancy as well as a bank. While learning, that I enjoy development more than these fields, the time in this sector greatly improved my overall experience and skills.

Experience as Instructor

As a self-taught professional I really know the hard parts and the difficult topics when learning new or improving on already-known languages. This background and experience enables me to focus on the most relevant key concepts and topics. My track record of many 5-star rated courses, more than 100.000 students on Udemy as well as a successful YouTube channel is the best proof for that.

Whether working as development instructor or teaching Business Administration I always received great feedback. The most rewarding experience is to see how people find new, better jobs, build awesome web applications, acquire amazing projects or simply enjoy their hobby with the help of my content.