# Preface
You are reading a book about ECMAScript 6 (ES6), a new version of JavaScript. It’s great that we can finally use that version, which had a long and eventful past: It was first conceived as ECMAScript 4, a successor to ECMAScript 3 (whose release was in December 1999). In July 2008, plans changed and the next versions of JavaScript were to be first a small incremental release (which became ES5) and then a larger, more powerful release. The latter had the code name Harmony and part of it became ES6.
ECMAScript 5 was standardized in December 2009. I first heard and [blogged](http://www.2ality.com/2011/01/brendan-eichs-dream-for-next-version-of.html) about ECMAScript 6 in January 2011, when it was still called *Harmony*. The original plan was to finish ES6 in 2013, but things took longer and it was standardized in June 2015. (A more detailed account of ES6’s history is given in [the next chapter](ch_about-es6.html#ecmascript-history).)
With a few minor exceptions, I am happy how ECMAScript 6 turned out. This book describes my experiences with, and my research of, its features. Similarly to ES6, it took a long time to finish – in a way, I started writing it in early 2011. Like my previous book “[Speaking JavaScript](http://speakingjs.com/)”, I wrote most of it as a series of blog posts. I like the discussion and feedback that this open process enables, which is why this book is available for free online.
This book can be read online for free. If you find it useful, please support it by [buying a copy](https://leanpub.com/exploring-es6/). You’ll get DRM-free PDF, EPUB, MOBI files.
I hope that reading the book conveys some of the fun I had investigating and playing with ES6.
Axel Rauschmayer
Next: [Acknowledgements](ch_acknowledgements.html)
- 關于本書
- 目錄簡介
- 關于這本書你需要知道的
- 序
- 前言
- I 背景
- 1. About ECMAScript 6 (ES6)
- 2. 常見問題:ECMAScript 6
- 3. 一個JavaScript:在 ECMAScript 6 中避免版本化
- 4. 核心ES6特性
- II 數據
- 5. New number and Math features
- 6. 新的字符串特性
- 7. Symbol
- 8. Template literals
- 第9章 變量與作用域
- 第10章 解構
- 第11章 參數處理
- III 模塊化
- 12. ECMAScript 6中的可調用實體
- 13. 箭頭函數
- 14. 除了類之外的新OOP特性
- 15. 類
- 16. 模塊
- IV 集合
- 17. The for-of loop
- 18. New Array features
- 19. Maps and Sets
- 20. 類型化數組
- 21. 可迭代對象和迭代器
- 22. 生成器( Generator )
- V 標準庫
- 23. 新的正則表達式特性
- 24. 異步編程 (基礎知識)
- 25. 異步編程的Promise
- VI 雜項
- 26. Unicode in ES6
- 27. 尾部調用優化
- 28 用 Proxy 實現元編程
- 29. Coding style tips for ECMAScript 6
- 30. 概述ES6中的新內容
- 注釋
- ES5過時了嗎?
- ==個人筆記==