O'Reilly logo
live online training icon Live Online training

Migrating to Modern JavaScript

Learn to eliminate legacy JavaScript code incrementally

Topic: Web Platform
Raju Gandhi

For a long time, JavaScript was deemed quirky and eccentric, and developers had to resort to convoluted programming practices and patterns to avoid the potholes presented by the language. But in 2015, the central committee that governs the development of the language announced a slew of changes aiming to propel JavaScript into a new era: Features like let and const aim to deprecate the mischievous var, while fat-arrow functions help make JavaScript more succinct and functional. Developing domains and object hierarchies is also easier using the newly introduced classes. Finally, features like Promises and async/await make working with asynchronous operations a snap.

Take your first steps toward modernizing your JavaScript code as expert Raju Gandhi takes you through refactoring legacy code to use modern JavaScript constructs. Join in to discover how to make your code clearer, more maintainable, and more explicit—with fewer hidden bugs.

What you'll learn-and how you can apply it

By the end of this live online course, you’ll understand:

  • The new features that have landed in JavaScript since 2015
  • How these features work in isolation and in concert with one another
  • What to look out for when migrating legacy code

And you’ll be able to:

  • Start using the new JavaScript constructs in your current or next project
  • See what it takes to refactor existing codebases to newer language constructs
  • Establish a good baseline with all of the new features in JavaScript so that future editions of the language can be easily adopted

This training course is for you because...

  • You’re a (full stack) developer who works with or maintains legacy JavaScript code.
  • You work with web applications and want to know what modern JavaScript has to offer.
  • You want to become a full stack developer and extend your expertise from backend to the frontend.


  • Experience developing with JavaScript

Recommended follow-up:

About your instructor

  • Raju Gandhi is a programmer, consultant, speaker, trainer, and all-around nice guy. He has worked in the software industry for over 15 years and has experience in both government and private sectors. Raju is a practitioner of both Agile and DevOps methods as well as good programming and architectural patterns and believes that finding the right balance between such practices will allow us to deliver software that our customers cherish. He is also a strong advocate of functional programming and a proponent of immutability across both software and hardware. Raju is a regular speaker at conferences around the country (and occasionally around the world) and has routinely participated in the No Fluff, Just Stuff tour. In his spare time, you will find Raju reading, playing with technology, or spending time with his wonderful (and significantly better) other half.


The timeframes are only estimates and may vary according to how the class is progressing

Limiting scope using let and var, and using default params to eliminate superfluous “undefined” checks (20 minutes)

The syntactic and semantic implications of the fat-arrow function (20 minutes)

Destructuring and spread (20 minutes)

Break (5 minutes)

An overview of the Map and Set API (20 minutes)

Using classes for prototypal inheritance in JavaScript (20 minutes)

Promises as the basis of asynchronous programming (20 minutes)

Break (5 minutes)

How to make asynchronous code seem imperative with async/await (20 minutes)

Breaking up functionality in your applications using modules (20 minutes)

Wrap-up and Q&A (10 minutes)