small medium large xlarge

Rediscovering JavaScript: Master ES6, ES7, and ES8


Cover image for Rediscovering JavaScript

Rediscovering JavaScript

Master ES6, ES7, and ES8


JavaScript is no longer to be feared or loathed—the world’s most popular and ubiquitous language has evolved into a respectable language. Whether you’re writing frontend applications or server side code, the phenomenal features from ES6 and beyond—like the rest operator, generators, destructuring, object literals, arrow functions, modern classes, promises, async, and metaprogramming capabilities—will get you excited and eager to program with JavaScript. You’ve found the right book to get started quickly and dive deep into the essence of modern JavaScript. Learn practical tips to apply the elegant parts of the language and the gotchas to avoid.

Choose Your Format(s)

  • $24.95 In Stock
    • Beta: What do I get?

  • Ebooks are DRM free.

  • Ebook delivery options.

  • The Paper Book will ship on 2018-06-10 (roughly).

About this Title

Pages: 225 (est)
Published: 2018-06-10
Release: B4.0 (2018-04-11)
ISBN: 978-1-68050-546-7

JavaScript is a black swan that no one, including the author of the language, thought would become a popular and ubiquitous language. Not long ago, it was the most hated and feared language you could use to program the web. JavaScript ES6 and beyond has gone through a significant makeover. Troublesome features have been replaced with better, elegant, more reliable alternatives. This book includes many practical examples and exercises to help you learn in depth. It will not bore you with idiosyncrasies and arcane details intended for bad interview questions. Instead, it takes you into key features that you can readily use in your day-to-day projects.

Whether you program the frontend or the server side, you can now write concise, elegant, and expressive JavaScript with newer features like default parameters, template literals, rest and spread operators, destructuring, arrow functions, and generators. Take it up a notch with features like infinite series, promises, async, and metaprogramming to create flexible, powerful, and extensible libraries. While the evolved features of the language will draw you in, the hundreds of examples in this book will pin the concepts down, for you to use on your projects. Take command of modern JavaScript and unlock your potential to create powerful applications.

What You Need

To try out the examples in the book you will need a computer with Node.js, a text editor, and a browser like Chrome installed in it.

Contents & Extracts

This book is currently in beta, so the contents and extracts will change as the book is developed.

  • Acknowledgements
  • Introduction
  • The Safe Alternatives
    • JavaScript Gotchas
      • Be Careful Where You Break Lines
      • Use === instead of ==
      • Declare Before Use
      • Stay One Step Ahead
      • Wrapping Up
    • Working with Variables and Constants excerpt
      • Out with Var
      • In with Let
      • Perils of Mutability
      • Const
      • Safer Code with let and const
      • Prefer const over let
      • Wrapping Up
    • Working with Function Arguments excerpt
      • The Power and Perils of arguments
      • Using the Rest Parameter
      • The Spread Operator
      • Defining Default Values For Parameters
      • Wrapping Up
  • Nice Additions
    • Working with Iterators and Symbols
      • The Convenience of Enhanced for
      • Symbol—A New Primitive Type
      • Using Custom Iterators and Generators
      • Creating Infinite Iterators
      • Wrapping Up
    • Arrow Functions and Functional Style
      • From Anonymous to Arrow Functions
      • Anonymous vs. Arrow Functions
      • Limitations of Arrow Functions
      • When to Use Arrow Functions
      • Arrow Functions and Functional Style
      • Wrapping Up
    • Literals and Destructuring
      • Using Template Literals
      • Multiline Strings
      • Tagged Template
      • Enhanced Object Literals
      • Destructuring
      • Wrapping Up
  • OO and Modular Code
    • Working with Classes excerpt
      • Creating a Class
      • Implementing a Constructor
      • Defining a Method
      • Defining Computed Members
      • Creating Properties
      • Defining Class Members
      • Class Expressions
      • New Builtin Classes: Set, Map, WeakSet, and WeakMap
      • Wrapping Up
    • Using Inheritance
      • Understanding Prototypal Inheritance
      • Inheriting from a Class
      • Managing Instance Types with species
      • Wrapping Up
    • Using Modules
      • Creating a Module
      • Exporting From a Module
      • Importing From a Module
      • Wrapping up
  • Going Meta
    • Keeping your Promises
      • No Thanks to Callback Hell
      • Promises to the Rescue
      • Ways to Create a Promise
      • Chaining Promises
      • Working with Multiple Promises
      • Async and Await
      • Wrapping Up
    • Exploring Metaprogramming
      • The Power and Perils of Metaprogramming
      • Dynamic Access
      • Member Injection
      • Wrapping Up
    • Metaprogramming with Proxy
      • Purpose of Reflect
      • Metaprogramming with Proxy
      • Member Synthesis with Proxy
      • Using Decorators
      • Wrapping Up


Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., and an instructional professor at the University of Houston. He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly invited speaker at several international conferences. He’s the (co)author of multiple books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer.