Customizing ES6 via well-known symbols

In ECMAScript 6, the object Symbol has several properties that contain so-called well-known symbols (Symbol.iterator, Symbol.hasInstance, etc.). These let you customize how ES6 treats objects. This blog post explains the details.


__proto__ in ECMAScript 6

The property __proto__ (pronounced “dunder proto”) has existed for a while in most JavaScript engines. This blog post explains how it worked prior to ECMAScript 6 and what changes with ECMAScript 6.


ECMAScript 6: holes in Arrays

This blog post describes how ECMAScript 6 handles holes in Arrays.


The names of functions in ES6

Update 2015-12-26: Sections for two caveats: “the name of a function is always assigned during creation” and “minification

The name property of a function contains its name:

    > function foo() {}
    > foo.name

This property is useful for debugging (its value shows up in stack traces) and some metaprogramming tasks (picking a function by name etc.).

Prior to ECMAScript 6 (ES6), this property was already supported by most engines. With ES6, it becomes part of the language standard and is frequently filled in automatically.


Typed Arrays in ECMAScript 6

Typed Arrays are an ECMAScript 6 API for handling binary data. This blog post explains how they work.