參考連結
官方檔案
- ECMAScript® 2015 Language Specification: ECMAScript 2015規格
- ECMAScript® 2016 Language Specification: ECMAScript 2016規格
- ECMAScript® 2017 Language Specification:ECMAScript 2017規格(草案)
- ECMAScript Current Proposals: ECMAScript當前的所有提案
- ECMAScript Active Proposals: 已經進入正式流程的提案
- ECMAscript proposals:從階段0到階段4的所有提案列表
- TC39 meeting agendas: TC39 委員會歷年的會議記錄
- ECMAScript Daily: TC39委員會的動態
- The TC39 Process: 提案進入正式規格的流程
- TC39: A Process Sketch, Stages 0 and 1: Stage 0 和 Stage 1 的含義
- TC39 Process Sketch, Stage 2: Stage 2 的含義
綜合介紹
- Axel Rauschmayer, Exploring ES6: Upgrade to the next version of JavaScript: ES6的專著,本書的許多程式碼實例來自該書
- Sayanee Basu, Use ECMAScript 6 Today
- Ariya Hidayat, Toward Modern Web Apps with ECMAScript 6
- Dale Schouten, 10 Ecmascript-6 tricks you can perform right now
- Colin Toh, Lightweight ES6 Features That Pack A Punch: ES6的一些“輕量級”的特性介紹
- Domenic Denicola, ES6: The Awesome Parts
- Nicholas C. Zakas, Understanding ECMAScript 6
- Justin Drake, ECMAScript 6 in Node.JS
- Ryan Dao, Summary of ECMAScript 6 major features
- Luke Hoban, ES6 features: ES6新語法點的羅列
- Traceur-compiler, Language Features: Traceur文件列出的一些ES6例子
- Axel Rauschmayer, ECMAScript 6: what’s next for JavaScript?: 關於ES6新增語法的綜合介紹,有很多例子
- Axel Rauschmayer, Getting started with ECMAScript 6: ES6語法點的綜合介紹
- Toby Ho, ES6 in io.js
- Guillermo Rauch, ECMAScript 6
- Charles King, The power of ECMAScript 6
- Benjamin De Cock, Frontend Guidelines: ES6最佳實踐
- Jani Hartikainen, ES6: What are the benefits of the new features in practice?
- kangax, Javascript quiz. ES6 edition: ES6小測試
- Jeremy Fairbank, HTML5DevConf ES7 and Beyond!: ES7新增語法點介紹
let和const
- Kyle Simpson, For and against let: 討論let命令的作用域
- kangax, Why typeof is no longer “safe”: 討論在塊級作用域內,let命令的變數宣告和賦值的行為
- Axel Rauschmayer, Variables and scoping in ECMAScript 6: 討論塊級作用域與let和const的行為
- Nicolas Bevacqua, ES6 Let, Const and the “Temporal Dead Zone” (TDZ) in Depth
- acorn, Function statements in strict mode: 塊級作用域對嚴格模式的函式宣告的影響
- Axel Rauschmayer, ES proposal: global: 頂層物件
global
解構賦值
- Nick Fitzgerald, Destructuring Assignment in ECMAScript 6: 詳細介紹解構賦值的用法
- Nicholas C. Zakas, ECMAScript 6 destructuring gotcha
字串
- Nicholas C. Zakas, A critical review of ECMAScript 6 quasi-literals
- Mozilla Developer Network, Template strings
- Addy Osmani, Getting Literal With ES6 Template Strings: 模板字串的介紹
- Blake Winton, ES6 Templates: 模板字串的介紹
- Peter Jaszkowiak, How to write a template compiler in JavaScript: 使用模板字串,編寫一個模板編譯函式
- Axel Rauschmayer, ES.stage3: string padding
正則
- Mathias Bynens, Unicode-aware regular expressions in ES6: 詳細介紹正則表示式的u修飾符
- Axel Rauschmayer, New regular expression features in ECMAScript 6:ES6正則特性的詳細介紹
- Yang Guo, RegExp lookbehind assertions:介紹後行斷言
數值
- Nicolas Bevacqua, ES6 Number Improvements in Depth
陣列
- Axel Rauschmayer, ECMAScript 6’s new array methods: 對ES6新增的陣列方法的全面介紹
- TC39, Array.prototype.includes: 陣列的includes方法的規格
- Axel Rauschmayer, ECMAScript 6: holes in Arrays: 陣列的空位問題
函式
- Nicholas C. Zakas, Understanding ECMAScript 6 arrow functions
- Jack Franklin, Real Life ES6 - Arrow Functions
- Axel Rauschmayer, Handling required parameters in ECMAScript 6
- Dmitry Soshnikov, ES6 Notes: Default values of parameters: 介紹引數的預設值
- Ragan Wald, Destructuring and Recursion in ES6: rest引數和展開運算子的詳細介紹
- Axel Rauschmayer, The names of functions in ES6: 函式的name屬性的詳細介紹
- Kyle Simpson, Arrow This: 箭頭函式並沒有自己的this
- Derick Bailey, Do ES6 Arrow Functions Really Solve “this” In JavaScript?:使用箭頭函式處理this指向,必須非常小心
- Mark McDonnell, Understanding recursion in functional JavaScript programming: 如何自己實現尾遞迴優化
- Nicholas C. Zakas, The ECMAScript 2016 change you probably don't know: 使用引數預設值時,不能在函式內部顯式開啟嚴格模式
物件
- Addy Osmani, Data-binding Revolutions with Object.observe(): 介紹Object.observe()的概念
- Sella Rafaeli, Native JavaScript Data-Binding: 如何使用Object.observe方法,實現資料物件與DOM物件的雙向繫結
- Axel Rauschmayer,
__proto__
in ECMAScript 6 - Axel Rauschmayer, Enumerability in ECMAScript 6
- Axel Rauschmayer, ES proposal: Object.getOwnPropertyDescriptors()
- TC39, Object.getOwnPropertyDescriptors Proposal
Symbol
- Axel Rauschmayer, Symbols in ECMAScript 6: Symbol簡介
- MDN, Symbol: Symbol型別的詳細介紹
- Jason Orendorff, ES6 In Depth: Symbols
- Keith Cirkel, Metaprogramming in ES6: Symbols and why they're awesome: Symbol的深入介紹
- Axel Rauschmayer, Customizing ES6 via well-known symbols
- Derick Bailey, Creating A True Singleton In Node.js, With ES6 Symbols
- Das Surma, How to read web specs Part IIa – Or: ECMAScript Symbols: 介紹 Symbol 的規格
Set和Map
- Mozilla Developer Network, WeakSet:介紹WeakSet資料結構
- Dwayne Charrington, What Are Weakmaps In ES6?: WeakMap資料結構介紹
- Axel Rauschmayer, ECMAScript 6: maps and sets: Set和Map結構的詳細介紹
- Jason Orendorff, ES6 In Depth: Collections:Set和Map結構的設計思想
- Axel Rauschmayer, Converting ES6 Maps to and from JSON: 如何將Map與其他資料結構互相轉換
Proxy 和 Reflect
- Nicholas C. Zakas, Creating defensive objects with ES6 proxies
- Axel Rauschmayer, Meta programming with ECMAScript 6 proxies: Proxy詳解
- Daniel Zautner, Meta-programming JavaScript Using Proxies: 使用Proxy實現超程式設計
- Tom Van Cutsem, Harmony-reflect: Reflect物件的設計目的
- Tom Van Cutsem, Proxy Traps: Proxy攔截操作一覽
- Tom Van Cutsem, Reflect API
- Tom Van Cutsem, Proxy Handler API
- Nicolas Bevacqua, ES6 Proxies in Depth
- Nicolas Bevacqua, ES6 Proxy Traps in Depth
- Nicolas Bevacqua, More ES6 Proxy Traps in Depth
- Axel Rauschmayer, Pitfall: not all objects can be wrapped transparently by proxies
- Bertalan Miklos, Writing a JavaScript Framework - Data Binding with ES6 Proxies: 使用 Proxy 實現觀察者模式
- Keith Cirkel, Metaprogramming in ES6: Part 2 - Reflect: Reflect API 的詳細介紹
Promise 物件
- Jake Archibald, JavaScript Promises: There and back again
- Tilde, rsvp.js
- Sandeep Panda, An Overview of JavaScript Promises: ES6 Promise入門介紹
- Dave Atchley, ES6 Promises: Promise的語法介紹
- Axel Rauschmayer, ECMAScript 6 promises (2/2): the API: 對ES6 Promise規格和用法的詳細介紹
- Jack Franklin, Embracing Promises in JavaScript: catch 方法的例子
- Ronald Chen, How to escape Promise Hell: 如何使用
Promise.all
方法的一些很好的例子 - Jordan Harband, proposal-promise-try: Promise.try() 方法的提案
- Sven Slootweg, What is Promise.try, and why does it matter?: Promise.try() 方法的優點
- Yehuda Katz, TC39: Promises, Promises: Promise.try() 的用處
Iterator
- Mozilla Developer Network, Iterators and generators
- Mozilla Developer Network, The Iterator protocol
- Jason Orendorff, ES6 In Depth: Iterators and the for-of loop: 遍歷器與for...of迴圈的介紹
- Axel Rauschmayer, Iterators and generators in ECMAScript 6: 探討Iterator和Generator的設計目的
- Axel Rauschmayer, Iterables and iterators in ECMAScript 6: Iterator的詳細介紹
- Kyle Simpson, Iterating ES6 Numbers: 在數值物件上部署遍歷器
Generator
- Matt Baker, Replacing callbacks with ES6 Generators
- Steven Sanderson, Experiments with Koa and JavaScript Generators
- jmar777, What's the Big Deal with Generators?
- Marc Harter, Generators in Node.js: Common Misconceptions and Three Good Use Cases: 討論Generator函式的作用
- StackOverflow, ES6 yield : what happens to the arguments of the first call next()?: 第一次使用next方法時不能帶有引數
- Kyle Simpson, ES6 Generators: Complete Series: 由淺入深探討Generator的系列文章,共四篇
- Gajus Kuizinas, The Definitive Guide to the JavaScript Generators: 對Generator的綜合介紹
- Jan Krems, Generators Are Like Arrays: 討論Generator可以被當作資料結構看待
- Harold Cooper, Coroutine Event Loops in Javascript: Generator用於實現狀態機
- Ruslan Ismagilov, learn-generators: 程式設計練習,共6道題
- Steven Sanderson, Experiments with Koa and JavaScript Generators: Generator入門介紹,以Koa框架為例
- Mahdi Dibaiee, ES7 Array and Generator comprehensions:ES7的Generator推導
- Nicolas Bevacqua, ES6 Generators in Depth
- Axel Rauschmayer, ES6 generators in depth: Generator規格的詳盡講解
- Derick Bailey, Using ES6 Generators To Short-Circuit Hierarchical Data Iteration:使用 for...of 迴圈完成預定的操作步驟
非同步操作和Async函式
- Luke Hoban, Async Functions for ECMAScript: Async函式的設計思想,與Promise、Gernerator函式的關係
- Jafar Husain, Asynchronous Generators for ES7: Async函式的深入討論
- Nolan Lawson, Taming the asynchronous beast with ES7: async函式通俗的實例講解
- Jafar Husain, Async Generators: 對async與Generator混合使用的一些討論
- Daniel Brain, Understand promises before you start using async/await: 討論async/await與Promise的關係
- Jake Archibald, Async functions - making promises friendly
- Axel Rauschmayer, ES proposal: asynchronous iteration: 非同步遍歷器的詳細介紹
- Dima Grossman, How to write async await without try-catch blocks in Javascript: 除了 try/catch 以外的 async 函式內部捕捉錯誤的方法
Class
- Sebastian Porto, ES6 classes and JavaScript prototypes: ES6 Class的寫法與ES5 Prototype的寫法對比
- Jack Franklin, An introduction to ES6 classes: ES6 class的入門介紹
- Axel Rauschmayer, ECMAScript 6: new OOP features besides classes
- Axel Rauschmayer, Classes in ECMAScript 6 (final semantics): Class語法的詳細介紹和設計思想分析
- Eric Faust, ES6 In Depth: Subclassing: Class語法的深入介紹
- Nicolás Bevacqua, Binding Methods to Class Instance Objects: 如何繫結類的實例中的this
Decorator
- Maximiliano Fierro, Declarative vs Imperative: Decorators和Mixin介紹
- Justin Fagnani, "Real" Mixins with JavaScript Classes: 使用類的繼承實現Mixin
- Addy Osmani, Exploring ES2016 Decorators: Decorator的深入介紹
- Sebastian McKenzie, Allow decorators for functions as well: 為什麼修飾器不能用於函式
- Maximiliano Fierro, Traits with ES7 Decorators: Trait的用法介紹
- Jonathan Creamer: Using ES2016 Decorators to Publish on an Event Bus: 使用修飾器實現自動釋出事件
Module
- Jack Franklin, JavaScript Modules the ES6 Way: ES6模組入門
- Axel Rauschmayer, ECMAScript 6 modules: the final syntax: ES6模組的介紹,以及與CommonJS規格的詳細比較
- Dave Herman, Static module resolution: ES6模組的靜態化設計思想
- Jason Orendorff, ES6 In Depth: Modules: ES6模組設計思想的介紹
- Ben Newman, The Importance of import and export: ES6模組的設計思想
- ESDiscuss, Why is "export default var a = 1;" invalid syntax?
- Bradley Meck, ES6 Module Interoperability: 介紹 Node 如何處理 ES6 語法載入 CommonJS 模組
- Axel Rauschmayer, Making transpiled ES modules more spec-compliant: ES6 模組編譯成 CommonJS 模組的詳細介紹
- Axel Rauschmayer, ES proposal: import() – dynamically importing ES modules: import() 的用法
二進位制陣列
- Ilmari Heikkinen, Typed Arrays: Binary Data in the Browser
- Khronos, Typed Array Specification
- Ian Elliot, Reading A BMP File In JavaScript
- Renato Mangini, How to convert ArrayBuffer to and from String
- Axel Rauschmayer, Typed Arrays in ECMAScript 6
SIMD
- TC39, SIMD.js Stage 2
- MDN, SIMD
- TC39, ECMAScript SIMD
- Axel Rauschmayer, JavaScript gains support for SIMD
工具
- Babel, Babel Handbook: Babel的用法介紹
- Google, traceur-compiler: Traceur編譯器
- Casper Beyer, ECMAScript 6 Features and Tools
- Stoyan Stefanov, Writing ES6 today with jstransform
- ES6 Module Loader, ES6 Module Loader Polyfill: 在瀏覽器和node.js載入ES6模組的一個庫,文件裡對ES6模組有詳細解釋
- Paul Miller, es6-shim: 一個針對老式瀏覽器,模擬ES6部分功能的墊片庫(shim)
- army8735, Javascript Downcast: 國產的ES6到ES5的轉碼器
- esnext, ES6 Module Transpiler:基於node.js的將ES6模組轉為ES5程式碼的命令列工具
- Sebastian McKenzie, BabelJS: ES6轉譯器
- SystemJS, SystemJS: 在瀏覽器中載入AMD、CJS、ES6模組的一個墊片庫
- Modernizr, HTML5 Cross Browser Polyfills: ES6墊片庫清單
- Facebook, regenerator: 將Generator函式轉為ES5的轉碼器