Skip to content
  1. 官方文件


  • : ECMAScript 2015 规格
  • : ECMAScript 2016 规格
  • :ECMAScript 2017 规格(草案)
  • : ECMAScript 当前的所有提案
  • : 已经进入正式流程的提案
  • :从阶段 0 到阶段 4 的所有提案列表
  • : TC39 委员会历年的会议记录
  • : TC39 委员会的动态
  • : 提案进入正式规格的流程
  • : Stage 0 和 Stage 1 的含义
  • : Stage 2 的含义

  1. 综合介绍


  • Axel Rauschmayer, : ES6 的专著,本书的许多代码实例来自该书
  • Sayanee Basu,
  • Ariya Hidayat,
  • Dale Schouten,
  • Colin Toh, : ES6 的一些"轻量级"的特性介绍
  • Domenic Denicola,
  • Nicholas C. Zakas,
  • Justin Drake,
  • Ryan Dao,
  • Luke Hoban, : ES6 新语法点的罗列
  • Traceur-compiler, : Traceur 文档列出的一些 ES6 例子
  • Axel Rauschmayer, : 关于 ES6 新增语法的综合介绍,有很多例子
  • Axel Rauschmayer, : ES6 语法点的综合介绍
  • Toby Ho,
  • Guillermo Rauch,
  • Benjamin De Cock, : ES6 最佳实践
  • Jani Hartikainen,
  • kangax, : ES6 小测试
  • Jeremy Fairbank, : ES7 新增语法点介绍
  • Timothy Gu, : 如何读懂 ES6 规格

  1. let 和 const


  • Kyle Simpson, : 讨论 let 命令的作用域
  • kangax, : 讨论在块级作用域内,let 命令的变量声明和赋值的行为
  • Axel Rauschmayer, : 讨论块级作用域与 let 和 const 的行为
  • Nicolas Bevacqua,
  • acorn, : 块级作用域对严格模式的函数声明的影响
  • Axel Rauschmayer, : 顶层对象 global
  • Mathias Bynens, :如何写 globalThis 的垫片库

  1. 解构赋值


  • Nick Fitzgerald, : 详细介绍解构赋值的用法
  • Nicholas C. Zakas,

  1. 字符串


  • Nicholas C. Zakas,
  • Mozilla Developer Network,
  • Addy Osmani, : 模板字符串的介绍
  • Blake Winton, : 模板字符串的介绍
  • Peter Jaszkowiak, : 使用模板字符串,编写一个模板编译函数
  • Axel Rauschmayer,

  1. 正则


  • Mathias Bynens, : 详细介绍正则表达式的 u 修饰符
  • Axel Rauschmayer, :ES6 正则特性的详细介绍
  • Yang Guo, :介绍后行断言
  • Axel Rauschmayer, : 具名组匹配的介绍
  • Mathias Bynens, : 介绍 ES2018 添加的多项正则语法

  1. 数值


  • Nicolas Bevacqua,
  • Axel Rauschmayer,
  • Mathias Bynens,

  1. 数组


  • Axel Rauschmayer, : 对 ES6 新增的数组方法的全面介绍
  • TC39, : 数组的 includes 方法的规格
  • Axel Rauschmayer, : 数组的空位问题

  1. 函数


  • Nicholas C. Zakas,
  • Jack Franklin,
  • Axel Rauschmayer,
  • Dmitry Soshnikov, : 介绍参数的默认值
  • Ragan Wald, : rest 参数和扩展运算符的详细介绍
  • Axel Rauschmayer, : 函数的 name 属性的详细介绍
  • Kyle Simpson, : 箭头函数并没有自己的 this
  • Derick Bailey, :使用箭头函数处理 this 指向,必须非常小心
  • Mark McDonnell, : 如何自己实现尾递归优化
  • Nicholas C. Zakas, : 使用参数默认值时,不能在函数内部显式开启严格模式
  • Axel Rauschmayer,
  • Cynthia Lee, : 讨论箭头函数的适用场合
  • Eric Elliott, : 箭头函数内部的 this 的解释。

  1. 对象


  • Addy Osmani, : 介绍 Object.observe()的概念
  • Sella Rafaeli, : 如何使用 Object.observe 方法,实现数据对象与 DOM 对象的双向绑定
  • Axel Rauschmayer,
  • Axel Rauschmayer,
  • Axel Rauschmayer,
  • TC39,
  • David Titarenco, : 扩展运算符的一些不合理的地方

  1. Symbol


  • Axel Rauschmayer, : Symbol 简介
  • MDN, : Symbol 类型的详细介绍
  • Jason Orendorff,
  • Keith Cirkel, : Symbol 的深入介绍
  • Axel Rauschmayer,
  • Derick Bailey,
  • Das Surma, : 介绍 Symbol 的规格

  1. Set 和 Map


  • Mozilla Developer Network, :介绍 WeakSet 数据结构
  • Dwayne Charrington, : WeakMap 数据结构介绍
  • Axel Rauschmayer, : Set 和 Map 结构的详细介绍
  • Jason Orendorff, :Set 和 Map 结构的设计思想
  • Axel Rauschmayer, : 如何将 Map 与其他数据结构互相转换

  1. Proxy 和 Reflect


  • Nicholas C. Zakas,
  • Axel Rauschmayer, : Proxy 详解
  • Daniel Zautner, : 使用 Proxy 实现元编程
  • Tom Van Cutsem, : Reflect 对象的设计目的
  • Tom Van Cutsem, : Proxy 拦截操作一览
  • Tom Van Cutsem,
  • Tom Van Cutsem,
  • Nicolas Bevacqua,
  • Nicolas Bevacqua,
  • Nicolas Bevacqua,
  • Axel Rauschmayer,
  • Bertalan Miklos, : 使用 Proxy 实现观察者模式
  • Keith Cirkel, : Reflect API 的详细介绍

  1. Promise 对象


  • Jake Archibald,
  • Jake Archibald,
  • Tilde,
  • Sandeep Panda, : ES6 Promise 入门介绍
  • Dave Atchley, : Promise 的语法介绍
  • Axel Rauschmayer, : 对 ES6 Promise 规格和用法的详细介绍
  • Jack Franklin, : catch 方法的例子
  • Ronald Chen, : 如何使用 Promise.all方法的一些很好的例子
  • Jordan Harband, : Promise.try() 方法的提案
  • Sven Slootweg, : Promise.try() 方法的优点
  • Yehuda Katz, : Promise.try() 的用处

  1. Iterator


  • Mozilla Developer Network,
  • Mozilla Developer Network,
  • Jason Orendorff, : 遍历器与 for...of 循环的介绍
  • Axel Rauschmayer, : 探讨 Iterator 和 Generator 的设计目的
  • Axel Rauschmayer, : Iterator 的详细介绍
  • Kyle Simpson, : 在数值对象上部署遍历器

  1. Generator


  • Matt Baker,
  • Steven Sanderson,
  • jmar777,
  • Marc Harter, : 讨论 Generator 函数的作用
  • StackOverflow, : 第一次使用 next 方法时不能带有参数
  • Kyle Simpson, : 由浅入深探讨 Generator 的系列文章,共四篇
  • Gajus Kuizinas, : 对 Generator 的综合介绍
  • Jan Krems, : 讨论 Generator 可以被当作数据结构看待
  • Harold Cooper, : Generator 用于实现状态机
  • Ruslan Ismagilov, : 编程练习,共 6 道题
  • Steven Sanderson, : Generator 入门介绍,以 Koa 框架为例
  • Mahdi Dibaiee, :ES7 的 Generator 推导
  • Nicolas Bevacqua,
  • Axel Rauschmayer, : Generator 规格的详尽讲解
  • Derick Bailey, :使用 for...of 循环完成预定的操作步骤

  1. 异步操作和 Async 函数


  • Luke Hoban, : Async 函数的设计思想,与 Promise、Gernerator 函数的关系
  • Jafar Husain, : Async 函数的深入讨论
  • Nolan Lawson, : async 函数通俗的实例讲解
  • Jafar Husain, : 对 async 与 Generator 混合使用的一些讨论
  • Daniel Brain, : 讨论 async/await 与 Promise 的关系
  • Jake Archibald,
  • Axel Rauschmayer, : 异步遍历器的详细介绍
  • Dima Grossman, : 除了 try/catch 以外的 async 函数内部捕捉错误的方法
  • Mostafa Gaafa, : Async 函数的6个好处
  • Mathias Bynens, : async 函数可以保留错误堆栈

  1. Class


  • Sebastian Porto, : ES6 Class 的写法与 ES5 Prototype 的写法对比
  • Jack Franklin, : ES6 class 的入门介绍
  • Axel Rauschmayer,
  • Axel Rauschmayer, : Class 语法的详细介绍和设计思想分析
  • Eric Faust, : Class 语法的深入介绍
  • Nicolás Bevacqua, : 如何绑定类的实例中的 this
  • Jamie Kyle, :私有属性的介绍。
  • Mathias Bynens, :实例属性的新写法的介绍。

  1. Decorator


  • Maximiliano Fierro, : Decorators 和 Mixin 介绍
  • Justin Fagnani, : 使用类的继承实现 Mixin
  • Addy Osmani, : Decorator 的深入介绍
  • Sebastian McKenzie, : 为什么修饰器不能用于函数
  • Maximiliano Fierro, : Trait 的用法介绍
  • Jonathan Creamer: : 使用修饰器实现自动发布事件

  1. Module


  • Jack Franklin, : ES6 模块入门
  • Axel Rauschmayer, : ES6 模块的介绍,以及与 CommonJS 规格的详细比较
  • Dave Herman, : ES6 模块的静态化设计思想
  • Jason Orendorff, : ES6 模块设计思想的介绍
  • Ben Newman, : ES6 模块的设计思想
  • ESDiscuss,
  • Bradley Meck, : 介绍 Node 如何处理 ES6 语法加载 CommonJS 模块
  • Axel Rauschmayer, : ES6 模块编译成 CommonJS 模块的详细介绍
  • Axel Rauschmayer, : import() 的用法
  • Node EPS, : Node 对 ES6 模块的处理规格

  1. 二进制数组


  • Ilmari Heikkinen,
  • Khronos,
  • Ian Elliot,
  • Renato Mangini,
  • Axel Rauschmayer,
  • Axel Rauschmayer,
  • Lin Clark, : Atomics 对象使用场景的解释
  • Lars T Hansen,
  • James Milner,

  1. SIMD


  • TC39,
  • MDN,
  • TC39,
  • Axel Rauschmayer,

  1. 工具


  • Babel, : Babel 的用法介绍
  • Google, : Traceur 编译器
  • Casper Beyer,
  • Stoyan Stefanov,
  • ES6 Module Loader, : 在浏览器和 node.js 加载 ES6 模块的一个库,文档里对 ES6 模块有详细解释
  • Paul Miller, : 一个针对老式浏览器,模拟 ES6 部分功能的垫片库(shim)
  • army8735, : 国产的 ES6 到 ES5 的转码器
  • esnext, :基于 node.js 的将 ES6 模块转为 ES5 代码的命令行工具
  • Sebastian McKenzie, : ES6 转译器
  • SystemJS, : 在浏览器中加载 AMD、CJS、ES6 模块的一个垫片库
  • Modernizr, : ES6 垫片库清单
  • Facebook, : 将 Generator 函数转为 ES5 的转码器## 1. 官方文件 : ECMAScript 2015 规格: ECMAScript 2016 规格:ECMAScript 2017 规格(草案): ECMAScript 当前的所有提案: 已经进入正式流程的提案:从阶段 0 到阶段 4 的所有提案列表: TC39 委员会历年的会议记录: TC39 委员会的动态: 提案进入正式规格的流程: Stage 0 和 Stage 1 的含义: Stage 2 的含义