There is nothing quite like the start of a new year to really dive into new and exciting information; just as time presses on around us, Javascript has pressed on, constantly latching onto a horde of devices, and for some it is hard to really keep up. ES2017 is the latest and greatest edition of the ECMAScript specification – the checklist which determines what Javascript language features browsers should support in their respective engines – and builds on the strong foundations that ES2016 and ES2015 laid out.

With ES2017 and the power of transpilers such as Babel and Typescript, modern Javascript can be written with the most recent features, transformed, and then shipped as backwards-compatible code. This is invaluable as it allows code to be "future-proof", so-to-speak. This is great for new applications, side projects, and open source tools that developers will be or are currently building, but what about that legacy code in that corner of the computer that rarely sees daylight?

That is where this guide comes in; the following sections will outline some new features from ES2015-ES2017, and detail how to adapt some familiar patterns currently used in frontend Javascript development to modern patterns.

Async/Await

Do Javascript developers dream of asynchronous code? Perhaps. Regardless, none need dream anymore, for the async and await keywords have arrived in ES2017. These work in tandem to provide asynchronous behavior to functions. (Including class methods!)

async keyword