The Javascript changes that came with ES6 (ECMAScript 6) seemed a bit confusing and almost like a new language to me. Thankfully, I came across Nicolas Zakas’ “Understanding ECMAScript 6: The Definitive Guide for JavaScript Developers“. This book far exceeded my expectations, and provided me with a better understanding of ES6, and the Javascript language as a whole.
I decided to write an in-depth review of the book to help others decide whether or not to buy the book.
Why take my advice?
I’ve been a front-end developer for nearly 9 years, and have incrementally been expanding my skills my entire career.
I started with basic HTML and CSS skills, then onto learning jQuery and vanilla Javascript, then AngularJS. I’ve also dabbled in Node.js and have developed sites with a variety of content-management systems like WordPress, MODX, and Shopify.
Should you be learning ES6?
If you are a front-end developer and you haven’t already started learning ES6, you should. Unlike javascript libraries and frameworks which can come and go, ES6 and beyond (ES7, ES8 etc.) is the defining standards of the Javascript language.
To be more exact, Javascript is a superset of ECMAScript, meaning it has additional features layered onto the language for browsers. Node.js, which runs on servers, is also a superset of ECMAScript.
As the web has evolved and relied more on Javascript for creating real-time user-interfaces and web pages, so has the need to evolve the language itself.
If you already have experience writing basic ES5-style Javascript – some of the new ES6 syntax can look a bit funky. This is the main reason I held off for so long.
When I finally decided to dive in, I looked for a trusted source. I wanted detailed explanations of concepts like arrow functions, let, constants, classes, and template literals.
How I picked this book
Back in 2015, I really wanted to begin growing my Javascript skills and ended up buying the book “The Principles of Object-Oriented JavaScript.“
This book really helped me expand my knowledge of Javascript. I was able to vet libraries and code snippets I came across and make better decisions when leveraging open source Javascript libraries.
Since that book was also written by Zakas, I trusted he would put the same quality into this ES6 book as well. The overwhelming positive reviews also gave me the confidence to purchase.
Who the book is for
If you know the fundamental basics of Javascript programming, such as how to create variables, functions, objects, loops, use conditional and comparison operators – and perhaps are familiar with Javascript-specific quirks like hoisting and IIFEs, then you will definitely benefit from this book.
Here is an excerpt from Zakas himself about who the book is for:
…this book is aimed at intermediate-to-advanced Javascript developers programming for a browser or Node.js environment who want to learn about the latest developments in the language.
from the introduction of Understanding ECMAScript 6 by Nicholas C. Zakas
Who this book is NOT for
If you are just beginning your front-end development career and are looking to learn the basics of Javascript programming, this book is not for you.
There are quite a few concepts about fundamental Javascript programming you should have a solid grasp of before you invest in this book.
Chapters of the book
The following is a list of the chapters of the book, to give you a better idea of the concepts covered in it. I’ve also added a short description to some of the chapters, which were concepts I was eager to learn about.
- Block Bindings
This chapter gave me a solid understanding of using<em>let</em>
and<em>const</em>
within blocks a loops compared to<em>var</em>
- Strings and Regular Expressions
Template literals and better string manipulation features among other topics are covered - Functions
New ways to provide function parameters, arrow functions and tail call optimization - Expanded Object Functionality
Updates to make it easier to work with objects - Destructuring for Easier Data Access
Breaking down Arrays and Objects into smaller parts - Symbols and Symbol Properties
A new type of primitive and way to create properties on Objects - Sets and Maps
- Iterators and Generators
- Introducing Javascript Classes
- Improved Array Capabilities
- Promises and Asynchronous Programming
- Proxies and the Reflection API
- Encapsulating Code with Modules
As you can see, there are a lot of concepts covered, making it a very in-depth and valuable resource. This is no quick-read at 309 pages. Rather, you can jump around to learn about new concepts and constantly revisit it to use as a reference while you learn.
Conclusion
If you are looking to advance your Javascript skills and jump squarely from ES5 into ES6 syntax land, than you should definitely buy this book. The sheer amount of information in this 309-page, well-researched and documented book makes it a great value.
I’m definitely one who learns by doing (as we all must actually code at some point), but I also find reading a book on principles, concepts and examples really helps solidify my knowledge on a subject. This book is no exception.