[toc]
## ECMAScript 5.1与ES6
![](https://box.kancloud.cn/787d544c0654c733e8be077b4f5639c1_1041x587.png)
## 语法提案的批准流程
![](https://box.kancloud.cn/f2aa381c4a17b3d2eea9befc4d394423_906x389.png)
## ECMAScript 的历史
1.0(1997) -> 2.0(1998.6) -> 3.0(1999.12) ->3.1(2008.7) -> 5.0(2009.12) -> 6.0(2015.6)
ES6 从开始制定到最后发布,整整用了15年。
前面提到,`ECMAScript 1.0` 是 1997年发布的,连续发布了ECMAScript2.0(1998年6月)和`ECMAScript 3.0`(1999年12月)。`3.0`版是一个巨大的成功,在业界得到广泛支持,成为同行标准,奠定了 Javascript 语言的基本语法,以后的版本完全继承。直到今天,初学者一开始学习 JavasScript,其实就是在学3.0版的语法。
2000 年,ECMAScript 4.0 开始酝酿。这个版本最后没有通过,但是它的大部分内容被 ES6 继承了。因此,ES6 制定的起点其实是 2000 年。
为什么 ES4 没有通过呢?因为这个版本太激进了,对 ES3 做了彻底升级,导致标准委员会的一些成员不愿意接收。ECMA 的第 39 号技术专家委员会(Technical Committee 39,简称 TC39)负责制定 ECMAScript 标准,成员包括 Microsoft、Mozilla、Google 等大公司。
2007 年 10 月,ECMAScript 4.0 版草案发布,本来预计次年 8 月发布正式版。但是,各方对于是否通过这个标准,发生了严重分歧。以Yahoo、Microsoft、Google 为首的大公司,反对JavaScript 的大幅升级,主张小幅改动;以JavaScript 创造者 Brendan Eich 为首的 Mozilla 公司,则坚持当前草案。
2008 年 7 月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激烈,ECMA开会决定,中止ECMAScript4.0的开发,将其中涉及先有功能改善的一小部分,发布为ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为 Harmony(和谐)。会后不久,ECMAScript 3.1 就改名为 ECMAScript 5。
2009 年 12月,ECMAScript 5.0 版正式发布。Harmony 项目则一分为二,一些较为可行的设想定名为 JavaScript.next 继续开发,后来演变成 ECMAScript 6;一些不是很成熟的设想,则被视为 JavaScript.next.next,在更远的将来再考虑推出。TC39 委员会的总体考虑是,ES5 与 ES3 基本保持兼容,较大的语法修正和新功能加入,将有 Javascript.next 完成。当时,JavaScript.next 指的是 ES6,第六版发布以后,就指ES7。TC39的判断是,ES5 会在 2013 年的年中成为 JavaScript 开发的主流标准,并在此后五年中一直保持这个位置。
2011 年 6月,ECMAScirpt 5.1 版发布,并且成为 ISO 国际标准(ISO/IEC 16262:2011)。
2013 年 3月,ECMAScript6 草案冻结,不再添加新功能。新的功能设想将被放到ECMAScript 7.
2013 年 12月,ECMAScript 6 草案发布。然后是12个月的讨论期,听取各方反馈。
2015 年 6 月,ECMAScript 6 正式通过,成为国际标准。从2000 年算起,这是已经过去了15年。
- 空白目录
- window
- location
- history
- DOM
- 什么是DOM
- JS盒子模型
- 13个核心属性
- DOM优化
- 回流与重绘
- 未整理
- 文档碎片
- DOM映射机制
- DOM库封装
- 事件
- 功能组件
- table
- 图片延迟加载
- 跑马灯
- 回到顶部
- 选项卡
- 鼠标跟随
- 放大镜
- 搜索
- 多级菜单
- 拖拽
- 瀑布流
- 数据类型的核心操作原理
- 变量提升
- 闭包(scope)
- this
- 练习题
- 各种数据类型下的常用方法
- JSON
- 数组
- object
- oop
- 单例模式
- 高级单例模式
- JS中常用的内置类
- 基于面向对象创建数据值
- 原型和原型链
- 可枚举和不可枚举
- Object.create
- 继承的六种方式
- ES6下一代js标准
- babel
- 箭头函数
- 对象
- es6勉强笔记
- 流程控制
- switch
- Ajax
- eval和()括号表达式
- 异常信息捕获
- 逻辑与和或以及前后自增
- JS中的异步编程思想
- 上云
- 优化技巧
- 跨域与JSONP
- 其它跨域相关问题
- console
- HTML、XHTML、XML
- jQuery
- zepto
- 方法重写和方法重载
- 移动端
- 响应式布局开发基础
- 项目一:创意简历