ECMAScript 6 (ES6) supports destructuring, a convenient way to extract values from data stored in (possibly nested) objects and arrays. This blog post describes how it works and gives examples of its usefulness. Additionally, parameter handling receives a significant upgrade in ES6: it becomes similar to and supports destructuring, which is why it is explained here, too.
Despite their name, template strings in ECMAScript 6 (ES6) are more like a different kind of function call than a mechanism for defining templates. This blog post explains how you can still use them for HTML templating. It is based on an idea by Claus Reinke.
A recent question by Dmitry Moskowski reminded me: ECMAScript 6 sets have no methods for computing the union (e.g. addAll
), intersection (e.g. retainAll
) or difference (e.g. removeAll
). This blog post explains how to work around that limitation.
Among others, the following four data structures are new in ECMAScript 6: Map
, WeakMap
, Set
and WeakSet
. This blog post explains how they work.
Symbols are a new primitive type in ECMAScript 6 [^1]. This blog post explains how they work.
Classes [^2] are the major new OOP feature in ECMAScript 6 [^1]. However, it also includes new features for object literals and new utility methods in Object
. This blog post describes them.
What is the best way to add new features to a language? This blog post describes the approach taken by ECMAScript 6 [^3], the next version of JavaScript. It is called One JavaScript, because it avoids versioning.
This blog post explains the ECMAScript 6 (ES6) feature proxies. Proxies enable you to intercept and customize operations performed on objects (such as getting properties). They are a meta programming feature.
Update 2014-11-18: Facebook Flow has been released as open source. Its website is flowtype.org. The site mentions plans for Flow’s future.
This blog post looks at three initiatives for adding static typing to JavaScript: Microsoft’s TypeScript, Facebook’s Flow and Google’s AtScript.