I’ve created a survey to find out what ES6 (a.k.a. ECMAScript 2015) features people like most:
Update 2018-05-09: Even though tail call optimization is part of the language specification, it isn’t supported by many engines and that may never change. The ideas are still interesting, however and explained in this blog post.
ECMAScript 6 offers tail call optimization, where you can make some function calls without growing the call stack. This blog post explains how that works and what benefits it brings.
Updates:
[2015-07-02] New material in these sections:
[2015-06-24] I added an FAQ with three new questions:
WebAssembly (short: wasm) is a new binary format for the web, created by Google, Microsoft, Mozilla and others. It will be used for performance critical code and to compile languages other than JavaScript (especially C/C++) to the web platform. It can be seen as a next step for asm.js [^3].
This blog post describes the new number and Math
features of ECMAScript 6.
This blog post describes the options you have for deploying ECMAScript 6 in current JavaScript environments. It is selective w.r.t. the amount of tools it covers. If you want a comprehensive list of tools, I suggest you look at Addy Osmani’s “ECMAScript 6 Tools”.
Consult the blog post “Using ECMAScript 6 today” for an overview of ES6 features.
This blog post explains how to use ES6 on Node.js by transpiling it to ES5 via Babel.
A previous blog post showed how to dynamically transpile ES6 at runtime (also via Babel). That is more convenient and should work for most projects, but occasionally you may want a simpler and faster setup for your runtime environment.
webpack is a client-side module builder and module loader. This blog post shows you how to write ECMAScript 6 code with it.
The code shown here is on GitHub, in the project webpack-es6-demo
.
Generators, a new feature of ECMAScript 6 [^4], are functions that can be paused and resumed. This helps with many applications: iterators, asynchronous programming, etc. This blog post explains how generators work and gives an overview of their applications.
The following GitHub repository contains the example code: generator-examples
This blog post explains how to use the ES6 transpiler Babel with Node.js. You can download the code shown in this post on GitHub. For further information on ECMAScript 6, consult the ebook “Exploring ES6”.
Warning: The approach explained in this post is convenient for experiments and development. But it uses on-the-fly transpilation, which may be too slow for your production code. Then you can transpile as a build step (as explained in the Babel documentation).