1 JavaScript Reloaded

This chapter covers

  • Getting to know JavaScript’s stage proposal process
  • Redefining JavaScript as a highly flexible and versatile language
  • Basics of object and function composition
  • Implementing dynamic object extension via mixins
  • Introduces meta-programming and the Proxy API
  • Asynchronous programming using async/await
  • Adding static type information into JavaScript code

“The strength of JavaScript is that you can do anything. The weakness is that you will”

Reginald Braithwaite

It’s Mocha… It’s LiveScript… It’s JScript?... It’s ECMAScript?... It’s JavaScript! Yes, JavaScript has taken on many forms since its inception, sometimes even incompatible to each other. Fortunately, the long and winding road is now starting to look like a straight path thanks to the advent of transpiler technology and the participation of an active, vibrant standards body and community.

Without a doubt, it’s an amazing time to be a JavaScript developer. Now you can write code that runs virtually anywhere from devices like tablets, smartphones, desktops, bots, and IoT, to even programming all tiers of an application stack from the client, server, all the way down to the database—the world is at your fingertips.

1.1 JavaScript + Babel: past, present, and JS.Next

1.2 One language to rule them all

1.3 JavaScript’s object model

1.3.1 No blueprints, just prototypes

1.3.2 Object modeling

1.4 Sample application: an immutable transaction system

1.5 Inheritance vs composition: why not both?

1.6 Higher-order functional programming

1.6.1 Composable functions

1.6.2 Composable types

1.7 Separating concerns like a pro

1.8 Taming asynchronous behavior

1.9 Types for JavaScript?

1.10 Transpilers and modern JS

1.11 Summary



Unfortunatly, we weren't able to load your books.

Unable to load book!

The book could not be loaded.

(try again in a couple of minutes) homepage