Get Programming with JavaScript Next
New features of ECMAScript 2015, 2016, and beyond
JD Isaacks
  • MEAP began November 2016
  • Publication in Early 2018 (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.

Get Programming with JavaScript Next: New features for ECMAScript 2015, 2016, and beyond introduces the modern age of JavaScript programming with ES6 and ES7 without dragging you through confusing jargon and abstract examples you'll never use. In just 44 quick fire sessions, you'll quickly be coding with the latest features and functions of ES6 and ES7! Starting with the basics of the new syntax, declarations, and data types, you'll build modules, work with Promises, Classes, Iterators, and beyond with easy to follow projects and clear explanations. And you'll be confident in your new skills because each lesson offer practical exercises to help you learn JavaScript by doing JavaScript!

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

Lesson iii Capstone

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 Summary

1.5 Quick Check Answers

Lesson 2 Declaring Variables with let

2.1 How Scope Works with let

2.1.1 Why The Block Scope of let is Preferred

2.2 How Hoisting Works with let

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

2.4 Summary

2.5 Quick Check Answers

Lesson 3 New String Methods

3.1 Searching Strings

3.2 Padding Strings

3.3 Summary

3.4 Exercise

3.5 Quick Check 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 Quick Check Answers

Lesson 5 Building a Domain Specific Language

5.1 Create Some Helper Functions

5.2 Create An HTML Escaping DSL

5.3 Create a DSL for Converting Arrays Into HTML

5.4 Summary

Unit 2: Objects & Arrays

Lesson 6 New Array Methods

6.1 Constructing Arrays with Array.from

6.2 Constructing Arrays with Array.of

6.3 Constructing Arrays with Array.prototype.fill

6.4 Searching in Arrays with Array.prototype.includes

6.5 Searching in Arrays with Array.prototype.find

6.6 Summary

6.6 Quick Check Answers

Lesson 7 Object.assign

7.1 Setting Default Values with Object.assign

7.2 Extending Objects with Object.assign

7.3 Preventing Mutations When Using Object.assign

7.4 How Object.assign Assigns Values

7.5 Summary

7.6 Quick Check Answers

Lesson 8 Destructuring

8.1 Destructuring Objects

8.2 Destructuring Arrays

8.3 Combining Array & Object Destructuring

8.4 What Types Can Be Destructured

8.5 Summary

8.6 Quick Check Answers

Lesson 9 New Object Literal Syntax

9.1 Shorthand Property Names

9.2 Shorthand Method Names

9.3 Computed Property Names

9.4 Summary

9.5 Quick Check Answers

Lesson 10 Symbol - A New Primitive

10.1 Using Symbols as Constants

10.2 Using Symbols as Object Keys

10.3 Creating Behavior Hooks with Global Symbols

10.4 Modifying Object Behavior with Well Known Symbols

10.5 Symbol Gotchas

10.6 Summary

10.7 Quick Check Answers

Lesson 11 Simulating a Lock & Key

11.1 Creating the Lock & Key System

11.2 Creating a Choose the Door Game

11.3 Summary

Unit 3: Functions

Lesson 12 Default Parameters & Rest

12.1 Default Parameters

12.2 Using Default Params to Skip Recalculating Values

12.3 Gathering Parameters with the Rest Operator

12.4 Using Rest to Pass Arguments Between Functions

12.5 Summary

12.6 Quick Check Answers

Lesson 13 Destructuring Parameters

13.1 Destructuring Array Parameters

13.2 Destructuring Object Parameters

13.3 Simulating Named Parameters

13.4 Creating Aliased Parameters

13.5 Summary

13.6 Quick Check Answers

Lesson 14 Arrow Functions

14.1 Succinct Code with Arrow Functions

14.2 Maintaining Context with Arrow Functions

14.3 Arrow Function Gotchas

14.4 Summary

14.5 Quick Check Answers

Lesson 15 Intro to Generator Functions

15.1 Defining Generator Functions

15.2 Using Generator Functions

15.3 Creating Infinite Lists with Generator Functions

15.4 Summary

15.5 Quick Check Answers

Lesson 16 Capstone: The Prisoner's Dilemma

16.1 Generating Prisoners

16.2 Getting Prisoners To Interact

16.3 Getting and Storing The Results

16.4 Putting the Simulation Together

16.5 Which Prisoner Does Best?

16.6 Summary

Unit 4 Modules

Lesson 17 Creating Modules

17.1 Module Rules

17.2 Creating Modules

17.3 When Does a JavaScript File Become a Module

17.4 Summary

17.5 Exercise

17.6 Quick Check Answers

Lesson 18 Using Modules

18.1 Specifying a Module's Location

18.2 Importing Values From Modules

18.3 How Imported Values Are Bound

18.4 Importing Side Effects

18.5 Breaking Apart & Organizing Modules

18.6 Summary

18.7 Quick Check Answers

Lesson 19 Capstone: Hangman Game

19.1 Planning

19.2 The Words Module

19.3 The Status Module

19.4 The Game's Interface Modules

19.5 The Index

19.6 Summary

Unit 5 Iterables

Lesson 20 Iterables

20.1 Iterables - What are they?

20.2 The for..of Statement

20.3 Spread

20.3.1 Using Spread as an Immutable Push

20.4 Iterators - Looking Under the Hood of Iterables

20.5 Summary

20.6 Exercise

20.7 Quick Check Answers

Lesson 21 Sets

21.1 Creating Sets

21.2 Using Sets

21.2 What About The WeakSet?

21.3 Summary

21.4 Quick Check Answers

Lesson 22 Maps

22.1 Creating Maps

22.2 Using Maps

22.3 When to Use Maps

22.4 What About The WeakMap?

22.5 Summary

22.6 Quick Check Answers

Lesson 23 Capstone: Blackjack

23.1 The Cards and The Deck

23.2 Making the CPU's Turn Slow Enough To See

23.3 Putting The Pieces Together

23.4 Summary

Unit 6 Classes

Lesson 24 Classes

24.1 Class Declarations

24.2 Instantiating Classes

24.3 Exporting Classes

24.4 Class Methods are Not Bound

24.5 Setting Instance Properties in Class Definition

24.6 Static Properties

24.7 Summary

24.8 Exercise

24.9 Quick Check Answers

Lesson 25 Extending Classes

25.1 Extends

25.2 Super

25.3 Extending Gotcha

25.4 Summary

25.5 Exercise

25.6 Quick Check Answers

Lesson 26 Capstone: Comets

26.1 Creating A Controllable Sprite

26.2 Adding Comets

26.3 Shooting Rockets

26.4 When Things Collide

26.5 Adding Explosions

26.6 Summary

Unit 7 Working Asynchronously

Lesson 27 Promises

Lesson 28 Advanced Promises

Lesson 29 Async Functions

Lesson 30 Observables

Lesson 31 Capstone: Canvas Image Gallery

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.
Buy
MEAP combo $39.99 pBook + eBook + liveBook
MEAP eBook $31.99 pdf + ePub + kindle + liveBook

FREE domestic shipping on three or more pBooks