---
title: "**Understanding ECMASCript 6**"
id: "2801"
type: "page"
slug: "understandingecmascript6"
published_at: "2026-07-17T08:20:40+00:00"
modified_at: "2026-07-17T14:10:26+00:00"
url: "https://preppers-paradise.com/library/understandingecmascript6/"
markdown_url: "https://preppers-paradise.com/library/understandingecmascript6.md"
excerpt: "A practical guide to the features introduced in ECMAScript 2015 (ES6) for JavaScript developers. Covers block bindings, enhanced strings and objects, destructuring, symbols, Sets and Maps, iterators, generators, classes, Promises, Proxies, and modules for modern JavaScript development."
taxonomy_category:
  - "Books"
  - "Free Teaser"
  - "Programming &amp; Development"
taxonomy_post_tag:
  - "asynchronous programming"
  - "developer guide"
  - "ecmascript 6"
  - "es2015"
  - "es6"
  - "frontend"
  - "javascript"
  - "modern javascript"
  - "programming"
  - "web development"
---

# **Understanding ECMASCript 6**

"Understanding ECMAScript 6" by Nicholas C. Zakas is a comprehensive guide for JavaScript developers, detailing the new features and functionalities introduced in the ECMAScript 2015 specification (ES6). It covers a wide array of topics including block bindings, enhanced string and object methods, destructuring, symbols, collections like Sets and Maps, iterators, generators, classes, asynchronous programming with Promises, Proxies, and modules, providing a practical resource for modern JavaScript development.

This page is free — overview and chapter list only.
Full book: $2.99 USDC · Per chapter: $0.25 USDC
[Buy / open complete book](/library/complete/understandingecmascript6/) · [Complete book Markdown](/library/complete/understandingecmascript6.md)

## Chapters

1. [The Road To Ecmascript 6](/library/understandingecmascript6/01-the-road-to-ecmascript-6/) (Free teaser)
1. [Block Level Declarations](/library/understandingecmascript6/02-block-level-declarations/) ($0.25)
1. [Block Bindings In Loops](/library/understandingecmascript6/03-block-bindings-in-loops/) ($0.25)
1. [Global Block Bindings](/library/understandingecmascript6/04-global-block-bindings/) ($0.25)
1. [Utf 16 Code Points](/library/understandingecmascript6/05-utf-16-code-points/) ($0.25)
1. [The Normalize Method](/library/understandingecmascript6/06-the-normalize-method/) ($0.25)
1. [The Regular Expression U Flag](/library/understandingecmascript6/07-the-regular-expression-u-flag/) ($0.25)
1. [Methods For Identifying Substrings](/library/understandingecmascript6/08-methods-for-identifying-substrings/) ($0.25)
1. [The Regular Expression Y Flag](/library/understandingecmascript6/09-the-regular-expression-y-flag/) ($0.25)
1. [The Flags Property](/library/understandingecmascript6/10-the-flags-property/) ($0.25)
1. [Multiline Strings](/library/understandingecmascript6/11-multiline-strings/) ($0.25)
1. [Tagged Templates](/library/understandingecmascript6/12-tagged-templates/) ($0.25)
1. [How Default Parameter Values Affect The Arguments Object](/library/understandingecmascript6/13-how-default-parameter-values-affect-the-arguments-object/) ($0.25)
1. [Default Parameter Expressions](/library/understandingecmascript6/14-default-parameter-expressions/) ($0.25)
1. [Default Parameter Tdz](/library/understandingecmascript6/15-default-parameter-tdz/) ($0.25)
1. [Rest Parameters](/library/understandingecmascript6/16-rest-parameters/) ($0.25)
1. [Special Cases Of The Name Property](/library/understandingecmascript6/17-special-cases-of-the-name-property/) ($0.25)
1. [The Newtarget Metaproperty](/library/understandingecmascript6/18-the-newtarget-metaproperty/) ($0.25)
1. [Arrow Functions](/library/understandingecmascript6/19-arrow-functions/) ($0.25)
1. [Tail Call Optimization](/library/understandingecmascript6/20-tail-call-optimization/) ($0.25)
1. [Summary](/library/understandingecmascript6/21-summary/) ($0.25)
1. [Object Literal Syntax Extensions](/library/understandingecmascript6/22-object-literal-syntax-extensions/) ($0.25)
1. [New Methods](/library/understandingecmascript6/23-new-methods/) ($0.25)
1. [Enhancements For Prototypes](/library/understandingecmascript6/24-enhancements-for-prototypes/) ($0.25)
1. [Summary 2](/library/understandingecmascript6/25-summary-2/) ($0.25)
1. [Object Destructuring](/library/understandingecmascript6/26-object-destructuring/) ($0.25)
1. [Array Destructuring](/library/understandingecmascript6/27-array-destructuring/) ($0.25)
1. [Destructured Parameters](/library/understandingecmascript6/28-destructured-parameters/) ($0.25)
1. [Creating Symbols](/library/understandingecmascript6/29-creating-symbols/) ($0.25)
1. [Sharing Symbols](/library/understandingecmascript6/30-sharing-symbols/) ($0.25)
1. [Symbol Coercion](/library/understandingecmascript6/31-symbol-coercion/) ($0.25)
1. [Exposing Internal Operations With Well Known Symbols](/library/understandingecmascript6/32-exposing-internal-operations-with-well-known-symbols/) ($0.25)
1. [Summary 3](/library/understandingecmascript6/33-summary-3/) ($0.25)
1. [Sets And Maps In Ecmascript 5](/library/understandingecmascript6/34-sets-and-maps-in-ecmascript-5/) ($0.25)
1. [Sets In Ecmascript 6](/library/understandingecmascript6/35-sets-in-ecmascript-6/) ($0.25)
1. [Maps In Ecmascript 6](/library/understandingecmascript6/36-maps-in-ecmascript-6/) ($0.25)
1. [Summary 4](/library/understandingecmascript6/37-summary-4/) ($0.25)
1. [What Are Generators](/library/understandingecmascript6/38-what-are-generators/) ($0.25)
1. [Iterables And For Of Loops](/library/understandingecmascript6/39-iterables-and-for-of-loops/) ($0.25)
1. [Built In Iterators](/library/understandingecmascript6/40-built-in-iterators/) ($0.25)
1. [Advanced Iterator Functionality](/library/understandingecmascript6/41-advanced-iterator-functionality/) ($0.25)
1. [Asynchronous Task Running](/library/understandingecmascript6/42-asynchronous-task-running/) ($0.25)
1. [Summary 5](/library/understandingecmascript6/43-summary-5/) ($0.25)
1. [Class Declarations](/library/understandingecmascript6/44-class-declarations/) ($0.25)
1. [Class Expressions](/library/understandingecmascript6/45-class-expressions/) ($0.25)
1. [Accessor Properties](/library/understandingecmascript6/46-accessor-properties/) ($0.25)
1. [Inheritance With Derived Classes](/library/understandingecmascript6/47-inheritance-with-derived-classes/) ($0.25)
1. [The Find And Findindex Methods](/library/understandingecmascript6/48-the-find-and-findindex-methods/) ($0.25)
1. [Manipulating Array Buffers With Views](/library/understandingecmascript6/49-manipulating-array-buffers-with-views/) ($0.25)
1. [The Callback Pattern](/library/understandingecmascript6/50-the-callback-pattern/) ($0.25)
1. [The Promise Life Cycle](/library/understandingecmascript6/51-the-promise-life-cycle/) ($0.25)
1. [Creating Unsettled Promises](/library/understandingecmascript6/52-creating-unsettled-promises/) ($0.25)
1. [Nodejs Rejection Handling](/library/understandingecmascript6/53-nodejs-rejection-handling/) ($0.25)
1. [Browser Rejection Handling](/library/understandingecmascript6/54-browser-rejection-handling/) ($0.25)
1. [Returning Promises In Promise Chains](/library/understandingecmascript6/55-returning-promises-in-promise-chains/) ($0.25)
1. [The Promiserace Method](/library/understandingecmascript6/56-the-promiserace-method/) ($0.25)
1. [Future Asynchronous Task Running](/library/understandingecmascript6/57-future-asynchronous-task-running/) ($0.25)
1. [Introducing Proxies And Reflection](/library/understandingecmascript6/58-introducing-proxies-and-reflection/) ($0.25)
1. [Creating A Simple Proxy](/library/understandingecmascript6/59-creating-a-simple-proxy/) ($0.25)
1. [Object Shape Validation Using The Get Trap](/library/understandingecmascript6/60-object-shape-validation-using-the-get-trap/) ($0.25)
1. [How Prototype Proxy Traps Work](/library/understandingecmascript6/61-how-prototype-proxy-traps-work/) ($0.25)
1. [Why Two Sets Of Methods](/library/understandingecmascript6/62-why-two-sets-of-methods/) ($0.25)
1. [Duplicate Extensibility Methods](/library/understandingecmascript6/63-duplicate-extensibility-methods/) ($0.25)
1. [Descriptor Object Restrictions](/library/understandingecmascript6/64-descriptor-object-restrictions/) ($0.25)
1. [Getownpropertydescriptor Methods](/library/understandingecmascript6/65-getownpropertydescriptor-methods/) ($0.25)
1. [Calling Constructors Without New](/library/understandingecmascript6/66-calling-constructors-without-new/) ($0.25)
1. [Callable Class Constructors](/library/understandingecmascript6/67-callable-class-constructors/) ($0.25)
1. [Deleting Elements When Reducing Length](/library/understandingecmascript6/68-deleting-elements-when-reducing-length/) ($0.25)
1. [Implementing The Myarray Class](/library/understandingecmascript6/69-implementing-the-myarray-class/) ($0.25)
1. [Using The Set Trap On A Prototype](/library/understandingecmascript6/70-using-the-set-trap-on-a-prototype/) ($0.25)
1. [Proxies As Prototypes On Classes](/library/understandingecmascript6/71-proxies-as-prototypes-on-classes/) ($0.25)
1. [A Subtle Quirk Of Imported Bindings](/library/understandingecmascript6/72-a-subtle-quirk-of-imported-bindings/) ($0.25)
1. [Importing Default Values](/library/understandingecmascript6/73-importing-default-values/) ($0.25)
1. [Using Modules With](/library/understandingecmascript6/74-using-modules-with/) ($0.25)
1. [Working With Integers](/library/understandingecmascript6/75-working-with-integers/) ($0.25)
1. [New Math Methods](/library/understandingecmascript6/76-new-math-methods/) ($0.25)
1. [Formalizing The Proto Property](/library/understandingecmascript6/77-formalizing-the-proto-property/) ($0.25)
1. [The Exponentiation Operator](/library/understandingecmascript6/78-the-exponentiation-operator/) ($0.25)
1. [The Arrayprototypeincludes Method](/library/understandingecmascript6/79-the-arrayprototypeincludes-method/) ($0.25)
1. [A Change To Function Scoped Strict Mode](/library/understandingecmascript6/80-a-change-to-function-scoped-strict-mode/) ($0.25)
