官方文件

  1. ECMAScript® 2015 Language Specification: ECMAScript 2015 规格
  2. ECMAScript® 2016 Language Specification: ECMAScript 2016 规格
  3. ECMAScript® 2017 Language Specification:ECMAScript 2017 规格(草案)
  4. ECMAScript Current Proposals: ECMAScript 当前的所有提案
  5. ECMAScript Active Proposals: 已经进入正式流程的提案
  6. ECMAScript proposals:从阶段 0 到阶段 4 的所有提案列表
  7. TC39 meeting agendas: TC39 委员会历年的会议记录
  8. ECMAScript Daily: TC39 委员会的动态
  9. The TC39 Process: 提案进入正式规格的流程
  10. TC39: A Process Sketch, Stages 0 and 1: Stage 0 和 Stage 1 的含义
  11. TC39 Process Sketch, Stage 2: Stage 2 的含义

综合介绍

  1. Axel Rauschmayer, Exploring ES6: Upgrade to the next version of JavaScript: ES6 的专著,本书的许多代码实例来自该书
  2. Sayanee Basu, Use ECMAScript 6 Today
  3. Ariya Hidayat, Toward Modern Web Apps with ECMAScript 6
  4. Dale Schouten, 10 Ecmascript-6 tricks you can perform right now
  5. Colin Toh, Lightweight ES6 Features That Pack A Punch: ES6 的一些“轻量级”的特性介绍
  6. Domenic Denicola, ES6: The Awesome Parts
  7. Nicholas C. Zakas, Understanding ECMAScript 6
  8. Justin Drake, ECMAScript 6 in Node.JS
  9. Ryan Dao, Summary of ECMAScript 6 major features
  10. Luke Hoban, ES6 features: ES6 新语法点的罗列
  11. Traceur-compiler, Language Features: Traceur 文档列出的一些 ES6 例子
  12. Axel Rauschmayer, ECMAScript 6: what’s next for JavaScript?: 关于 ES6 新增语法的综合介绍,有很多例子
  13. Axel Rauschmayer, Getting started with ECMAScript 6: ES6 语法点的综合介绍
  14. Toby Ho, ES6 in io.js
  15. Guillermo Rauch, ECMAScript 6
  16. Benjamin De Cock, Frontend Guidelines: ES6 最佳实践
  17. Jani Hartikainen, ES6: What are the benefits of the new features in practice?
  18. kangax, JavaScript quiz. ES6 edition: ES6 小测试
  19. Jeremy Fairbank, HTML5DevConf ES7 and Beyond!: ES7 新增语法点介绍
  20. Timothy Gu, How to Read the ECMAScript Specification: 如何读懂 ES6 规格

let 和 const

  1. Kyle Simpson, For and against let: 讨论 let 命令的作用域
  2. kangax, Why typeof is no longer “safe”: 讨论在块级作用域内,let 命令的变量声明和赋值的行为
  3. Axel Rauschmayer, Variables and scoping in ECMAScript 6: 讨论块级作用域与 let 和 const 的行为
  4. Nicolas Bevacqua, ES6 Let, Const and the “Temporal Dead Zone” (TDZ) in Depth
  5. acorn, Function statements in strict mode: 块级作用域对严格模式的函数声明的影响
  6. Axel Rauschmayer, ES proposal: global: 顶层对象global
  7. Mathias Bynens, A horrifying [globalThis](https://mathiasbynens.be/notes/globalthis) polyfill in universal JavaScript:如何写 globalThis 的垫片库

解构赋值

  1. Nick Fitzgerald, Destructuring Assignment in ECMAScript 6: 详细介绍解构赋值的用法
  2. Nicholas C. Zakas, ECMAScript 6 destructuring gotcha

字符串

  1. Nicholas C. Zakas, A critical review of ECMAScript 6 quasi-literals
  2. Mozilla Developer Network, Template strings
  3. Addy Osmani, Getting Literal With ES6 Template Strings: 模板字符串的介绍
  4. Blake Winton, ES6 Templates: 模板字符串的介绍
  5. Peter Jaszkowiak, How to write a template compiler in JavaScript: 使用模板字符串,编写一个模板编译函数
  6. Axel Rauschmayer, ES.stage3: string padding

正则

  1. Mathias Bynens, Unicode-aware regular expressions in ES6: 详细介绍正则表达式的 u 修饰符
  2. Axel Rauschmayer, New regular expression features in ECMAScript 6:ES6 正则特性的详细介绍
  3. Yang Guo, RegExp lookbehind assertions:介绍后行断言
  4. Axel Rauschmayer, ES proposal: RegExp named capture groups: 具名组匹配的介绍
  5. Mathias Bynens, ECMAScript regular expressions are getting better!: 介绍 ES2018 添加的多项正则语法

数值

  1. Nicolas Bevacqua, ES6 Number Improvements in Depth
  2. Axel Rauschmayer, ES proposal: arbitrary precision integers
  3. Mathias Bynens, BigInt: arbitrary-precision integers in JavaScript

数组

  1. Axel Rauschmayer, ECMAScript 6’s new array methods: 对 ES6 新增的数组方法的全面介绍
  2. TC39, Array.prototype.includes: 数组的 includes 方法的规格
  3. Axel Rauschmayer, ECMAScript 6: holes in Arrays: 数组的空位问题

函数

  1. Nicholas C. Zakas, Understanding ECMAScript 6 arrow functions
  2. Jack Franklin, Real Life ES6 - Arrow Functions
  3. Axel Rauschmayer, Handling required parameters in ECMAScript 6
  4. Dmitry Soshnikov, ES6 Notes: Default values of parameters: 介绍参数的默认值
  5. Ragan Wald, Destructuring and Recursion in ES6: rest 参数和扩展运算符的详细介绍
  6. Axel Rauschmayer, The names of functions in ES6: 函数的 name 属性的详细介绍
  7. Kyle Simpson, Arrow This: 箭头函数并没有自己的 this
  8. Derick Bailey, Do ES6 Arrow Functions Really Solve “this” In JavaScript?:使用箭头函数处理 this 指向,必须非常小心
  9. Mark McDonnell, Understanding recursion in functional JavaScript programming: 如何自己实现尾递归优化
  10. Nicholas C. Zakas, The ECMAScript 2016 change you probably don’t know: 使用参数默认值时,不能在函数内部显式开启严格模式
  11. Axel Rauschmayer, ES proposal: optional catch binding
  12. Cynthia Lee, When you should use ES6 arrow functions — and when you shouldn’t: 讨论箭头函数的适用场合
  13. Eric Elliott, What is this?: 箭头函数内部的 this 的解释。

对象

  1. Addy Osmani, Data-binding Revolutions with Object.observe(): 介绍 Object.observe()的概念
  2. Sella Rafaeli, Native JavaScript Data-Binding: 如何使用 Object.observe 方法,实现数据对象与 DOM 对象的双向绑定
  3. Axel Rauschmayer, [__proto__](https://2ality.com/2015/09/proto-es6.html) in ECMAScript 6
  4. Axel Rauschmayer, Enumerability in ECMAScript 6
  5. Axel Rauschmayer, ES proposal: Object.getOwnPropertyDescriptors()
  6. TC39, Object.getOwnPropertyDescriptors Proposal
  7. David Titarenco, How Spread Syntax Breaks JavaScript: 扩展运算符的一些不合理的地方

Symbol

  1. Axel Rauschmayer, Symbols in ECMAScript 6: Symbol 简介
  2. MDN, Symbol: Symbol 类型的详细介绍
  3. Jason Orendorff, ES6 In Depth: Symbols
  4. Keith Cirkel, Metaprogramming in ES6: Symbols and why they’re awesome: Symbol 的深入介绍
  5. Axel Rauschmayer, Customizing ES6 via well-known symbols
  6. Derick Bailey, Creating A True Singleton In Node.js, With ES6 Symbols
  7. Das Surma, How to read web specs Part IIa – Or: ECMAScript Symbols: 介绍 Symbol 的规格

Set 和 Map

  1. Mozilla Developer Network, WeakSet:介绍 WeakSet 数据结构
  2. Dwayne Charrington, What Are Weakmaps In ES6?: WeakMap 数据结构介绍
  3. Axel Rauschmayer, ECMAScript 6: maps and sets: Set 和 Map 结构的详细介绍
  4. Jason Orendorff, ES6 In Depth: Collections:Set 和 Map 结构的设计思想
  5. Axel Rauschmayer, Converting ES6 Maps to and from JSON: 如何将 Map 与其他数据结构互相转换

Proxy 和 Reflect

  1. Nicholas C. Zakas, Creating defensive objects with ES6 proxies
  2. Axel Rauschmayer, Meta programming with ECMAScript 6 proxies: Proxy 详解
  3. Daniel Zautner, Meta-programming JavaScript Using Proxies: 使用 Proxy 实现元编程
  4. Tom Van Cutsem, Harmony-reflect: Reflect 对象的设计目的
  5. Tom Van Cutsem, Proxy Traps: Proxy 拦截操作一览
  6. Tom Van Cutsem, Reflect API
  7. Tom Van Cutsem, Proxy Handler API
  8. Nicolas Bevacqua, ES6 Proxies in Depth
  9. Nicolas Bevacqua, ES6 Proxy Traps in Depth
  10. Nicolas Bevacqua, More ES6 Proxy Traps in Depth
  11. Axel Rauschmayer, Pitfall: not all objects can be wrapped transparently by proxies
  12. Bertalan Miklos, Writing a JavaScript Framework - Data Binding with ES6 Proxies: 使用 Proxy 实现观察者模式
  13. Keith Cirkel, Metaprogramming in ES6: Part 2 - Reflect: Reflect API 的详细介绍

Promise 对象

  1. Jake Archibald, JavaScript Promises: There and back again
  2. Jake Archibald, Tasks, microtasks, queues and schedules
  3. Tilde, rsvp.js
  4. Sandeep Panda, An Overview of JavaScript Promises: ES6 Promise 入门介绍
  5. Dave Atchley, ES6 Promises: Promise 的语法介绍
  6. Axel Rauschmayer, ECMAScript 6 promises (2/2): the API: 对 ES6 Promise 规格和用法的详细介绍
  7. Jack Franklin, Embracing Promises in JavaScript: catch 方法的例子
  8. Ronald Chen, How to escape Promise Hell: 如何使用Promise.all方法的一些很好的例子
  9. Jordan Harband, proposal-promise-try: Promise.try() 方法的提案
  10. Sven Slootweg, What is Promise.try, and why does it matter?: Promise.try() 方法的优点
  11. Yehuda Katz, TC39: Promises, Promises: Promise.try() 的用处

Iterator

  1. Mozilla Developer Network, Iterators and generators
  2. Mozilla Developer Network, The Iterator protocol
  3. Jason Orendorff, ES6 In Depth: Iterators and the for-of loop: 遍历器与 for…of 循环的介绍
  4. Axel Rauschmayer, Iterators and generators in ECMAScript 6: 探讨 Iterator 和 Generator 的设计目的
  5. Axel Rauschmayer, Iterables and iterators in ECMAScript 6: Iterator 的详细介绍
  6. Kyle Simpson, Iterating ES6 Numbers: 在数值对象上部署遍历器

Generator

  1. Matt Baker, Replacing callbacks with ES6 Generators
  2. Steven Sanderson, Experiments with Koa and JavaScript Generators
  3. jmar777, What’s the Big Deal with Generators?
  4. Marc Harter, Generators in Node.js: Common Misconceptions and Three Good Use Cases: 讨论 Generator 函数的作用
  5. StackOverflow, ES6 yield : what happens to the arguments of the first call next()?: 第一次使用 next 方法时不能带有参数
  6. Kyle Simpson, ES6 Generators: Complete Series: 由浅入深探讨 Generator 的系列文章,共四篇
  7. Gajus Kuizinas, The Definitive Guide to the JavaScript Generators: 对 Generator 的综合介绍
  8. Jan Krems, Generators Are Like Arrays: 讨论 Generator 可以被当作数据结构看待
  9. Harold Cooper, Coroutine Event Loops in JavaScript: Generator 用于实现状态机
  10. Ruslan Ismagilov, learn-generators: 编程练习,共 6 道题
  11. Steven Sanderson, Experiments with Koa and JavaScript Generators: Generator 入门介绍,以 Koa 框架为例
  12. Mahdi Dibaiee, ES7 Array and Generator comprehensions:ES7 的 Generator 推导
  13. Nicolas Bevacqua, ES6 Generators in Depth
  14. Axel Rauschmayer, ES6 generators in depth: Generator 规格的详尽讲解
  15. Derick Bailey, Using ES6 Generators To Short-Circuit Hierarchical Data Iteration:使用 for…of 循环完成预定的操作步骤

异步操作和 Async 函数

  1. Luke Hoban, Async Functions for ECMAScript: Async 函数的设计思想,与 Promise、Gernerator 函数的关系
  2. Jafar Husain, Asynchronous Generators for ES7: Async 函数的深入讨论
  3. Nolan Lawson, Taming the asynchronous beast with ES7: async 函数通俗的实例讲解
  4. Jafar Husain, Async Generators: 对 async 与 Generator 混合使用的一些讨论
  5. Daniel Brain, Understand promises before you start using async/await: 讨论 async/await 与 Promise 的关系
  6. Jake Archibald, Async functions - making promises friendly
  7. Axel Rauschmayer, ES proposal: asynchronous iteration: 异步遍历器的详细介绍
  8. Dima Grossman, How to write async await without try-catch blocks in JavaScript: 除了 try/catch 以外的 async 函数内部捕捉错误的方法
  9. Mostafa Gaafa, 6 Reasons Why JavaScript’s Async/Await Blows Promises Away: Async 函数的6个好处
  10. Mathias Bynens, Asynchronous stack traces: why await beats Promise#then(): async 函数可以保留错误堆栈

Class

  1. Sebastian Porto, ES6 classes and JavaScript prototypes: ES6 Class 的写法与 ES5 Prototype 的写法对比
  2. Jack Franklin, An introduction to ES6 classes: ES6 class 的入门介绍
  3. Axel Rauschmayer, ECMAScript 6: new OOP features besides classes
  4. Axel Rauschmayer, Classes in ECMAScript 6 (final semantics): Class 语法的详细介绍和设计思想分析
  5. Eric Faust, ES6 In Depth: Subclassing: Class 语法的深入介绍
  6. Nicolás Bevacqua, Binding Methods to Class Instance Objects: 如何绑定类的实例中的 this
  7. Jamie Kyle, JavaScript’s new #private class fields:私有属性的介绍。
  8. Mathias Bynens, Public and private class fields:实例属性的新写法的介绍。

Decorator

  1. Maximiliano Fierro, Declarative vs Imperative: Decorators 和 Mixin 介绍
  2. Justin Fagnani, “Real” Mixins with JavaScript Classes: 使用类的继承实现 Mixin
  3. Addy Osmani, Exploring ES2016 Decorators: Decorator 的深入介绍
  4. Sebastian McKenzie, Allow decorators for functions as well: 为什么修饰器不能用于函数
  5. Maximiliano Fierro, Traits with ES7 Decorators: Trait 的用法介绍
  6. Jonathan Creamer: Using ES2016 Decorators to Publish on an Event Bus: 使用修饰器实现自动发布事件

Module

  1. Jack Franklin, JavaScript Modules the ES6 Way: ES6 模块入门
  2. Axel Rauschmayer, ECMAScript 6 modules: the final syntax: ES6 模块的介绍,以及与 CommonJS 规格的详细比较
  3. Dave Herman, Static module resolution: ES6 模块的静态化设计思想
  4. Jason Orendorff, ES6 In Depth: Modules: ES6 模块设计思想的介绍
  5. Ben Newman, The Importance of import and export: ES6 模块的设计思想
  6. ESDiscuss, Why is “export default var a = 1;” invalid syntax?
  7. Bradley Meck, ES6 Module Interoperability: 介绍 Node 如何处理 ES6 语法加载 CommonJS 模块
  8. Axel Rauschmayer, Making transpiled ES modules more spec-compliant: ES6 模块编译成 CommonJS 模块的详细介绍
  9. Axel Rauschmayer, ES proposal: import() – dynamically importing ES modules: import() 的用法
  10. Node EPS, ES Module Interoperability: Node 对 ES6 模块的处理规格
  11. Dan Fabulich, Why CommonJS and ES Modules Can’t Get Along: Node.js 对 ES6 模块的处理

二进制数组

  1. Ilmari Heikkinen, Typed Arrays: Binary Data in the Browser
  2. Khronos, Typed Array Specification
  3. Ian Elliot, Reading A BMP File In JavaScript
  4. Renato Mangini, How to convert ArrayBuffer to and from String
  5. Axel Rauschmayer, Typed Arrays in ECMAScript 6
  6. Axel Rauschmayer, ES proposal: Shared memory and atomics
  7. Lin Clark, Avoiding race conditions in SharedArrayBuffers with Atomics: Atomics 对象使用场景的解释
  8. Lars T Hansen, Shared memory - a brief tutorial
  9. James Milner, The Return of SharedArrayBuffers and Atomics

SIMD

  1. TC39, SIMD.js Stage 2
  2. MDN, SIMD
  3. TC39, ECMAScript SIMD
  4. Axel Rauschmayer, JavaScript gains support for SIMD

工具

  1. Babel, Babel Handbook: Babel 的用法介绍
  2. Google, traceur-compiler: Traceur 编译器
  3. Casper Beyer, ECMAScript 6 Features and Tools
  4. Stoyan Stefanov, Writing ES6 today with jstransform
  5. ES6 Module Loader, ES6 Module Loader Polyfill: 在浏览器和 node.js 加载 ES6 模块的一个库,文档里对 ES6 模块有详细解释
  6. Paul Miller, es6-shim: 一个针对老式浏览器,模拟 ES6 部分功能的垫片库(shim)
  7. army8735, JavaScript Downcast: 国产的 ES6 到 ES5 的转码器
  8. esnext, ES6 Module Transpiler:基于 node.js 的将 ES6 模块转为 ES5 代码的命令行工具
  9. Sebastian McKenzie, BabelJS: ES6 转译器
  10. SystemJS, SystemJS: 在浏览器中加载 AMD、CJS、ES6 模块的一个垫片库
  11. Modernizr, HTML5 Cross Browser Polyfills: ES6 垫片库清单
  12. Facebook, regenerator: 将 Generator 函数转为 ES5 的转码器