Speak to our team now  0118 324 3000

ECMAScript 6 (2015) New Features

  • Duration: 3 Days

Course Information


The demands on the JavaScript language have increased dramatically over the last few years as developers are tasked with writing more and more complex scripts, using JavaScript, AngularJS, NodeJS and many more.

ECMAScript 6 completed in 2015 and formally dubbed “ECMAScript 2015.” Takes JavaScript programming to new levels many developers have been asking for.

The features vary widely from completely new objects and patterns to syntax changes to new methods on existing objects. The exciting thing about ECMAScript 6 is that all of its changes are geared toward solving problems that developers actually face.

This course takes existing JavaScript developers through the new powerful capabilities of ECMAScript 6.


Experience of developing JavaScript web pages/applications is required.

Course Outline

1 - Introduction
  • The Road to ECMAScript 6
  • About This Course
2 - Block Bindings
  • Var Declarations and Hoisting
  • Block-Level Declarations
  • Block Binding in Loops
  • Global Block Bindings
  • Emerging Best Practices for Block Bindings
  • Strings and Regular Expressions
  • Better Unicode Support
  • Other String Changes
  • Other Regular Expression Changes
  • Template Literals
3 - 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
  • 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
4 - Destructuring for Easier Data Access
  • Why is Destructuring Useful?
  • Object Destructuring
  • Array Destructuring
  • Mixed Destructuring
  • Destructured Parameters
5 - Symbols and Symbol Properties
  • Creating Symbols
  • Using Symbols
  • Sharing Symbols
  • Symbol Coercion
  • Retrieving Symbol Properties
  • Exposing Internal Operations with Well-Known Symbols
6 - Sets and Maps
  • Sets and Maps in ECMAScript 5
  • Problems with Workarounds
  • Sets in ECMAScript 6
  • Maps in ECMAScript 6
7 - 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
8 - 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
9 - Improved Array Capabilities
  • Creating Arrays
  • New Methods on All Arrays
  • Typed Arrays
  • Similarities Between Typed and Regular Arrays
  • Differences Between Typed and Regular Arrays
10 - Promises and Asynchronous Programming
  • Asynchronous Programming Background
  • Promise Basics
  • Global Promise Rejection Handling
  • Chaining Promises
  • Responding to Multiple Promises
  • Inheriting from Promises
11 - 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 Proxie
  • Solving the Array Problem
  • Using a Proxy as a Prototype
12 - 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
13 - Smaller Changes
  • Working with Integers
  • New Math Methods
  • Unicode Identifiers
  • Formalizing the __proto__ Property

Whats included in this course?

  • image
    Course Manual
  • image
    Experienced Trainers
  • image
    Certificate of Attendance
  • image
    Unlimited Post Course Support

If you need something more custom, please get in touch with our team.

Request a Quote


  • I thoroughly enjoyed this course but do feel that the duration should be extended in order to allow more time to cover all of the topics. Noel was a fantastic trainer, happy to answer any questions and very good at explaining how to do something, thank you.

    Laura Chesters