2016-02

ES2016 feature: Array.prototype.includes

[2016-02-01] dev, javascript, esnext, es2016

Array.prototype.includes is an ECMAScript proposal by Domenic Denicola and Rick Waldron. It is at stage 4 (finished) and part of ECMAScript 2016.

ES proposal: async functions

[2016-02-01] dev, javascript, esnext, es proposal, async, promises

Async functions are an ECMAScript proposal by Brian Terlson. It is at stage 3 (candidate).

Before I can explain async functions, I need to explain how Promises and generators can be combined to perform asynchronous operations via synchronous-looking code.

ES2016 feature: exponentiation operator (**)

[2016-02-01] dev, javascript, esnext, es2016

The exponentiation operator (**) is an ECMAScript proposal by Rick Waldron. It is at stage 4 (finished) and part of ECMAScript 2016.

2016-01

The final feature set of ECMAScript 2016 (ES7)

[2016-01-30] dev, javascript, esnext, es2016

We always knew that ECMAScript 2016 (ES2016) would be a small release. It turns out that it will be very small. Read on for a list of its features and an explanation why that is not a problem.

ES.next News: a weekly email newsletter

[2016-01-20] dev, javascript, esnext news, media

Today, Johannes Weber and I are launching a new weekly email newsletter: ES.next News.

Enumify: better enums for JavaScript

[2016-01-15] dev, javascript, esnext, technique

In this blog post, I present enumify, a library for implementing enums in JavaScript. The approach it takes is inspired by Java’s enums.

ES6 classes have inner names

[2016-01-09] dev, javascript, esnext

This blog post explains that classes have lexical inner names, just like named function expressions.

Running locally installed npm executables

[2016-01-07] dev, javascript, nodejs

One nice npm feature is that you can install packages with executables locally. This blog post explains how to run locally installed executables.

Managing the private data of ES6 classes

[2016-01-04] dev, javascript, esnext

This blog post explains four approaches for managing private data for ES6 classes:

  1. Keeping private data in the environment of a class constructor
  2. Marking private properties via a naming convention (e.g. a prefixed underscore)
  3. Keeping private data in WeakMaps
  4. Using symbols as keys for private properties

My new book: “Setting up ES6”

[2016-01-01] book, esnext

My latest book is called “Setting up ES6”. It covers the following topics:

  • A cheat sheet for deploying ECMAScript 6
  • Example setups (skeleton projects that you can download from GitHub):
    • ES6 in browsers via webpack and Babel
    • ES6 in Node.js via Babel (compiled dynamically or statically)
  • How to configure Babel 6, including a clear explanation of how it interacts with CommonJS modules