Understanding ECMAScript 6

by Nicholas C. Zakas

Creative Commons License

ECMAScript 6 represents the biggest change to the core of JavaScript in the history of the language. Not only does the sixth edition add new object types, but also new syntax and exciting new capabilities. The result of years of study and debate, ECMAScript 6 reached feature complete status in 2014. While it will take a bit of time before all JavaScript environments support ECMAScript 6, it's still useful to understand what's coming and which features are available already.

This book is a guide for the transition between ECMAScript 5 and 6. It is not specific to any JavaScript environment, so it is equally useful to web developers as it is Node.js developers.

What you'll learn:

  • All of the changes to the language since ECMAScript 5
  • How the new class syntax relates to more familiar JavaScript concepts
  • Why iterators and generators are useful
  • How arrow functions differ from regular functions
  • Additional options for storing data using sets, maps, and more
  • The power of inheriting from native types
  • Why people are so excited about promises for asynchronous programming
  • How modules will change the way you organize code

Where to Read

The published version is available for free and contains the latest "blessed" version. The content may be incomplete but should be correct. New releases are published several times a month.

Anything that is not present in the published version is considered a work-in-progress and may be incomplete or incorrect.

Purchasing a copy

You can purchase a copy of this ebook through Leanpub. If you purchase a copy before the ebook is finished, you will receive all updates to the ebook as they are released, up to and including the finished version.

Supporting the author

If you enjoy this book and would like to support my efforts to create more content, please consider becoming a patron. A small donation is greatly appreciated and will allow me more time to continue my work.


Even though this book is being developed in the open, the project works differently than open source software projects. Please read the following thoroughly before attempting to contribute.

Leanpub Markdown

Leanpub uses a specific flavor of Markdown for its source files. Please be sure to read their documentation about what is allowable and what is not.

Note: It may be frustrating, Leanpub does not support all of GitHub-flavored markdown.

Pull requests

Pull requests will be accepted only for correction of content and not for creation of content. Acceptable pull requests:

  • Typo fixes
  • Grammar/spelling errors
  • Alternate descriptions
  • Clarifying phrases

Pull requests that will not be considered:

  • New sections of content
  • New chapters

Basically, you can use pull requests to fix what is already in the repository but not to add what is not in the repository.

Note: An accepted pull request means that your name will be added to a list of contributors. You are still bound by the conditions of the license, meaning that you are not considered an author or owner of the content once it has been merged in. It is considered a donation of your effort to this work.


Issues can be used both to point out errors as well as to make suggestions. Use issues for:

  • Asking questions about the content
  • Pointing out an error or problem with the content
  • Requesting more information about a section
  • Suggesting a new topic for inclusion

Any issue that remains open will be addressed. Issues will be closed either when addressed or if the issue will not be addressed.

Issues should not be used for:

  • Asking when a particular section or chapter will be complete
  • Anything already marked as "TODO" in the files

These types of issues will simply be marked as invalid and closed without comment.

Copyright 2014-2015 Nicholas C. Zakas.

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.

Frequently Asked Questions

When will the book be finished?

To be determined. Since I'm writing this in my spare time, it's hard to predict when it will be complete. The goal is to have it complete by December 2015, but that is a goal and not a deadline.

If I buy a copy now, do I get the finished one?

Yes. When you buy the Leanpub ebook today, you will automatically get all updates for the ebook. You'll be notified of updated versions via email after purchase.

How often is the book published?

Roughly every week or two the changes in GitHub are published to Leanpub.

What is the state of content in GitHub?

Everything in GitHub is a work in progress. Those parts that are known to be correct and fully-formed enough to be valuable are published to Leanpub. That's why there's more content in GitHub than is available on Leanpub, as GitHub contains everything, including content that's not quite ready for the book.

Will there be a print version of the book?

Yes. No Starch Press will be publishing the book when it's complete. We're hoping to have a print version by early 2016. Follow me for updates.

Can I acquire translation rights?

Yes. Please contact No Starch Press for acquiring translation rights.