Understanding ECMAScript 6
Minimum price
Suggested price

Understanding ECMAScript 6

About the Book

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 are 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

This book is being developed in the open on GitHub. You can visit the project repo to see the latest updates.

  • Share this book

  • Categories

    • ES6
  • License

About the Author

Nicholas C. Zakas
Nicholas C. Zakas

Nicholas C. Zakas is an independent software engineer, consultant, coach, and has authored over a dozen books. He created the ESLint open source project and has worked on everything from small websites to massive-scale web applications. He has worked at Box as a principal architect and Yahoo as a presentation architect. Nicholas is a strong advocate for development best practices including progressive enhancement, accessibility, performance, scalability, and maintainability.

Bundles that include this book

Bought separately
Bundle Price
Bought separately
Bundle Price

Table of Contents

  • Introduction
    • The Road to ECMAScript 6
    • About This Book
    • Acknowledgments
  • Block Bindings
    • Var Declarations and Hoisting
    • Block-Level Declarations
    • Block Binding in Loops
    • Global Block Bindings
    • Emerging Best Practices for Block Bindings
    • Summary
  • Strings and Regular Expressions
    • Better Unicode Support
    • Other String Changes
    • Other Regular Expression Changes
    • Template Literals
    • Summary
  • Functions
    • Functions with Default Parameter Values
    • Working with Unnamed Parameters
    • Increased Capabilities of the Function Constructor
    • The Spread Operator
    • ECMAScript 6’s name Property
    • Clarifying the Dual Purpose of Functions
    • Block-Level Functions
    • Arrow Functions
    • Tail Call Optimization
    • Summary
  • Expanded Object Functionality
    • Object Categories
    • Object Literal Syntax Extensions
    • New Methods
    • Duplicate Object Literal Properties
    • Own Property Enumeration Order
    • More Powerful Prototypes
    • A Formal Method Definition
    • Summary
  • Destructuring for Easier Data Access
    • Why is Destructuring Useful?
    • Object Destructuring
    • Array Destructuring
    • Mixed Destructuring
    • Destructured Parameters
    • Summary
  • Symbols and Symbol Properties
    • Creating Symbols
    • Using Symbols
    • Sharing Symbols
    • Symbol Coercion
    • Retrieving Symbol Properties
    • Exposing Internal Operations with Well-Known Symbols
    • Summary
  • Sets and Maps
    • Sets and Maps in ECMAScript 5
    • Problems with Workarounds
    • Sets in ECMAScript 6
    • Maps in ECMAScript 6
    • Summary
  • Iterators and Generators
    • The Loop Problem
    • What are Iterators?
    • What Are Generators?
    • Iterables and for-of
    • Built-in Iterators
    • The Spread Operator and Non-Array Iterables
    • Advanced Iterator Functionality
    • Asynchronous Task Running
    • Summary
  • Introducing JavaScript Classes
    • Class-Like Structures in ECMAScript 5
    • Class Declarations
    • Class Expressions
    • Classes as First-Class Citizens
    • Accessor Properties
    • Computed Member Names
    • Generator Methods
    • Static Members
    • Inheritance with Derived Classes
    • Using new.target in Class Constructors
    • Summary
  • Improved Array Capabilities
    • Creating Arrays
    • New Methods on All Arrays
    • Typed Arrays
    • Similarities Between Typed and Regular Arrays
    • Differences Between Typed and Regular Arrays
    • Summary
  • Promises and Asynchronous Programming
    • Asynchronous Programming Background
    • Promise Basics
    • Global Promise Rejection Handling
    • Chaining Promises
    • Responding to Multiple Promises
    • Inheriting from Promises
    • Summary
  • Proxies and the Reflection API
    • The Array Problem
    • What are Proxies and Reflection?
    • Creating a Simple Proxy
    • Validating Properties Using the set Trap
    • Object Shape Validation Using the get Trap
    • Hiding Property Existence Using the has Trap
    • Preventing Property Deletion with the deleteProperty Trap
    • Prototype Proxy Traps
    • Object Extensibility Traps
    • Property Descriptor Traps
    • The ownKeys Trap
    • Function Proxies with the apply and construct Traps
    • Revocable Proxies
    • Solving the Array Problem
    • Using a Proxy as a Prototype
    • Summary
  • Encapsulating Code With Modules
    • What are Modules?
    • Basic Exporting
    • Basic Importing
    • Renaming Exports and Imports
    • Default Values in Modules
    • Re-exporting a Binding
    • Importing Without Bindings
    • Loading Modules
    • Summary
  • Appendix A: Smaller Changes
    • Working with Integers
    • New Math Methods
    • Unicode Identifiers
    • Formalizing the __proto__ Property
  • Appendix B: Understanding ECMAScript 7 (2016)
    • The Exponentiation Operator
    • The Array.prototype.includes() Method
    • Change to Function-Scoped Strict Mode

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub