Learn JavaScript Next
Explore the best new features of ECMAScript 2015, 2016, and beyond
JD Isaacks
  • MEAP began November 2016
  • Publication in Summer 2017 (estimated)
  • ISBN 9781617294204
  • 400 pages (estimated)
  • printed in black & white

Modern browsers, Node, and major libraries have already started to adopt next generation JavaScript features. Isn't it time for you to learn ES6 and ES7? They can make your JavaScript simpler to read, less prone to common errors, and much easier to use in asynchronous programs.

Learn Javascript Next teaches JavaScript developers the most important additions from both ES6 and ES7. This clearly-written guide to JavaScript's newest features contains lots of short easy-to-digest chapters and exercises to help you master each new concept. You'll start with the basics including new syntax, new variable declarations, new data types and methods, and ES6 Modules Then you'll learn more advanced topics, like Promises, Classes, Iterators, Async Functions, Generators, and Observables. By the end of this book, you'll be able to read and understand code examples and communicate with other devs using ES6 or later concepts.

Table of Contents detailed table of contents

Unit 0 Getting Setup

Lesson i Standards Process

Lesson ii Getting Setup with Babel & Browserify

Lesson iii Creating modules with Browserify

Unit 1 Variables & Strings

Lesson 1 Declaring Variables with let

1.1 How Scope Works with let

1.1.1 Why The Block Scope of let is Preferred

1.2 How Hoisting Works with let

1.3 Should I Use let Instead of var From Now On?

1.4 Quiz Answers

1.5 Exercise

Lesson 2 Declaring constants with const

2.1 How Constants Work

2.2 When to Use Constants

2.3 Quiz Answers

2.4 Exercise

2.5 Summary

Lesson 3 New String Methods

3.1 Searching Strings

3.2 Padding Strings

3.3 Summary

3.4 Exercise

3.5 Quiz Answers

Lesson 4 Template Literals

4.1 What are Template Literals?

4.1.1 String Interpolation with Template Literals

4.1.2 Multiline Strings with Template Literals

4.2 Template Literals are not Reusable Templates

4.3 Custom Processing with Tagged Template Literals

4.4 Summary

4.5 Exercise

4.6 Quiz Answers

Capstone 1 Building a Domain Specific Language

C1.1 Create Some Helper Functions

C1.2 Create An HTML Escaping DSL

C1.3 Create a DSL for Converting Arrays Into HTML

C1.4 Summary

Unit 2 Objects & Arrays

Lesson 5 New Array Methods

5.1 Constructing Arrays with Array.from

5.2 Constructing Arrays with Array.of

5.3 Constructing Arrays with Array.prototype.fill

5.4 Searching in Arrays with Array.prototype.includes

5.5 Searching in Arrays with Array.prototype.find

5.6 Summary

5.7 Exercise

5.8 Quiz Answers

Lesson 6 Object.assign

6.1 Setting Default Values with Object.assign

6.2 Extending Objects with Object.assign

6.3 Preventing Mutations When Using Object.assign

6.4 How Object.assign Assigns Values

6.5 Summary

6.6 Exercise

6.7 Quiz Answers

Lesson 7 Destructuring

7.1 Destructuring Objects

7.2 Destructuring Arrays

7.3 Combining Array & Object Destructuring

7.4 What Types Can Be Destructured

7.5 Summary

7.6 Exercise

7.7 Quiz Answers

Lesson 8 New Object Literal Syntax

8.1 Shorthand Property Names

8.2 Shorthand Method Names

8.3 Computed Property Names

8.4 Summary

8.5 Exercise

8.6 Quiz Answers

Lesson 9 Symbol - A New Primitive

9.1 Using Symbols as Constants

9.2 Using Symbols as Object Keys

9.3 Creating Behavior Hooks with Global Symbols

9.4 Modifying Object Behavior with Well Known Symbols

9.5 Symbol Gotchas

9.6 Summary

9.7 Exercise

9.8 Quiz Answers

Capstone 2 Simulating a Lock & Key

C2.1 Creating the Lock & Key System

C2.2 Creating a Choose the Door Game

Unit 3 Functions

Lesson 10 Default Parameters & Rest

10.1 Default Parameters

10.2 Using Default Params to Skip Recalculating Values

10.3 Gathering Parameters with the Rest Operator

10.4 Using Rest to Pass Arguments Between Functions

10.5 Summary

10.6 Exercise

10.7 Quiz Answers

Lesson 11 Destructuring Parameters

11.1 Destructuring Array Parameters

11.2 Destructuring Object Parameters

11.3 Simulating Named Parameters

11.4 Creating Aliased Parameters

11.5 Summary

11.6 Exercise

11.7 Quiz Answers

Lesson 12 Arrow Functions

12.1 Succinct Code with Arrow Functions

12.2 Maintaining Context with Arrow Functions

12.3 Arrow Function Gotchas

12.4 Summary

12.5 Exercise

12.6 Quiz Answers

Lesson 13 Intro to Generator Functions

13.1 Defining Generator Functions

13.2 Using Generator Functions

13.3 Creating Infinite Lists with Generator Functions

13.4 Summary

13.5 Quiz Answers

Capstone 3 The Prisoner’s Dilemma

C3.1 Generating Prisoners

C3.2 Getting Prisoners To Interact

C3.3 Getting and Storing The Results

C3.4 Putting the Simulation Together

C3.5 Which Prisoner Does Best?

Unit 4 Modules

Lesson 14 ES5 Modularizing Strategies

Lesson 15 ES6 Modules

Capstone 4

Unit 5 Iterators

Lesson 16 Iteration

Lesson 17 Spread

Lesson 18 Maps

Lesson 19 Sets

Lesson 20 WeakMaps & WeakSets

Lesson 21 Generators

Capstone 5

Unit 6 Classes

Lesson 22 Classes

Lesson 23 Extending Classes

Lesson 24 Decorators

Capstone 6

Unit 7 Working Asynchronously

Lesson 25 Using Promises

Lesson 26 Defining Promises

Lesson 27 Promise Error Handling

Lesson 28 Async Functions

Capstone 7

Unit 8 Working Reactively

Lesson 29 Intro to Reactive Programming with Observables

Lesson 30 Creating Observables

Lesson 31 Hot vs Cold Observables

Lesson 32 Manipulating Observables

Lesson 33 RxJS

Capstone 8

What's inside

  • Learn the new features of ES6 (ES2015)
  • Use all of the newest JavaScript features right away
  • Setup an ES6/7 project using Babel and Browserify
  • Writing elegant asynchronous code with async functions, generators, and promises
  • Using classes instead of constructors
  • Creating custom iterables and modifying built in ones
  • Using and troubleshooting modules and classes to build complex applications

About the reader

This book is for developers who are comfortable writing basic Javascript code. Knowledge of the DOM and Node.js will be helpful, but not required.

About the author

J.D. Isaacks has been a developer for over 10 years, focusing on EcmaScript-based languages and is a Javascript instructor for The Iron Yard. He has contributed to projects including React, Backbone, and D3. He is also a member of both the Bower.js and Moment.js teams and the creator of GitGutter, one of the most popular Sublime Text packages.

Manning Early Access Program (MEAP) Read chapters as they are written, get the finished eBook as soon as it’s ready, and receive the pBook long before it's in bookstores.
MEAP combo $39.99 pBook + eBook
MEAP eBook $31.99 pdf + ePub + kindle

FREE domestic shipping on three or more pBooks