原文:http://www.2ality.com/2011/06/ecmascript.html

本文解释了JavaScript和ECMAScript之间的区别.还解释了ECMAScript.next和ECMAScript 6以及ECMAScript Harmony之间的区别.

部分ECMAScript术语

你应该知道下面这些与JavaScript标准化相关的术语.

  • ECMAScript: Sun(现在的Oracle)公司持有着“Java”和“JavaScript”的商标.这就让微软不得不把自己的JavaScript方言称之为“JScript”.然后,在这门语言被标准化的时候,就必须使用一个与二者都不同的名字.“ECMAScript”就这样诞生了,这个名字的来由是因为执行标准化的组织是Ecma国际.通常来说,术语“ECMAScript”和“JavaScript”指的是同一个东西.但如果把JavaScript看成是“Mozilla或其他组织的ECMAScript实现”,那么ECMAScript就是实现JavaScript所依据的标准.术语“ECMAScript”也用来描述语言版本(比如ECMAScript 5).
  • ECMA-262: Ecma国际 (一个标准化组织)创建了ECMA-262规范,这个规范就是ECMAScript语言的官方标准.
  • ECMAScript 5: 如果有人提到ECMAScript 5,那么他指的就是ECMA-262规范的第五版,同时也是当前最新的正式规范.
  • Ecma第39号技术委员会 (TC39): 是一组开发ECMA-262标准规范的人(Brendan Eich和其他一些人).

ECMAScript的历史

  • ECMAScript 3 (1999年12月).这是目前大部分浏览器都支持的ECMAScript版本.该版本引入了很多的新特性,这些特性已经成为该语言不可或缺的一部分:

    [...] 正则表达式,更好的字符串处理,新的控制语句,try/catch异常捕获,更严格的错误类型定义,格式化数字输出以及其他增强特性. [1]

  • ECMAScript 4 (2008年7月被废弃). ECMAScript 4是作为下一代的JavaScript被开发的,同时有一个用ML写成的原型.但是,TC39委员会并不完全同意它的一些新特性.为了防止陷入僵局, 委员会在2008年7月底会晤,并产生了一项协议,协议内容总结为以下四点[2]:
    1. 开发一个增量式更新的ECMAScript (后来成为了ECMAScript 5).
    2. 开发一个重要的新版本规范,要比ECMAScript 4更先进,但会比ECMAScript 3之后的那个版本更新跨度更大.该版本的开发代号被定为Harmony,因为这场会议的的性质就是倡导我们要和谐发展.
    3. ECMAScript 4中引入的一些特性将被丢弃:包,命名空间,早期绑定.
    4. 其他的想法要在成为所有的TC39成员的共识下开发.

    最终:ECMAScript 4的开发者们同意把Harmony做的不要像ECMAScript 4那么激进,其余的TC39成员也表示同意,开发继续进行.

  • ECMAScript 5 (2009年12月). 此版本带来了一些标准库的增强,甚至通过引入严格模式更新了语言的语义.[3]
  • ECMAScript.next (计划于2013年). 从问世以来,这个版本就显得有点太过雄心勃勃了,所以它的特性被分成了两组,第一组是那些将要成为ECMAScript 5下一个版本的特性.这一版本的开发代号称之为ECMAScript.next,并且很可能成为ECMAScript 6.第二组是Harmony特性,这些特性被认为是准备还不够充分或者重要程度还不够,所以不能进入ECMAScript.next.但仍然会进入某个更新的ECMAScript版本中,比如ECMAScript.next.next.当前的目标是在2013年完成ECMAScript.next,在此之前,浏览器(主要是火狐)要实现部分规范.

总结

ECMAScript和JavaScript的关系.ECMAScript是语言的规范.而JavaScript是规范的实现,Microsoft的JScript是另外一个实现

即将到来的ECMAScript版本:

  • ECMAScript.next是ECMAScript下一版规范的开发代号(code name).使用这个术语就意味着当前讨论的特性可能会也可能不会被加入最终的规范中.
  • ECMAScript 6是ECMAScript.next的实际(最终)名称.使用这个术语就意味着当前讨论的特性一定会被添加在最终的规范中.
  • ECMAScript Harmony是ECMAScript.next的超集,意味着“ECMAScript 5之后的新特性”.这些特性可能会被添加到ECMAScript.next中,也可能被添加到ECMAScript.next.next或者更新的版本中.

参考

  1. ECMAScript - Wikipedia, the free encyclopedia
  2. ECMAScript Harmony (电子邮件归档)
  3. What’s new in ECMAScript 5
  4. JavaScript: how it all began
  5. Posts on ECMAScript.next
    • Best overview of planned features: “ECMAScript.next: the ‘TXJS’ update by Eich”

译者注

ECMAScript的读音大概为"艾克马script"

ECMA国际除了TC39还有很多委员会,他们制定的规范也不只有ECMAScript,还有很多其他的规范,有数据压缩相关的,有无线通信相关的,属于ECMAScript的规范只有三个,ECMA-262:我们通常说的ECMAScript就指的这个,还有ECMA-357:E4x,ES262的扩展,只有火狐实现了.还有ECMA-327.

John Resig也有一篇相关的文章,http://ejohn.org/blog/ecmascript-harmony/

我英语渣水平,翻译不对的地方请一定要指教.

[译]ECMAScript:ES.next和ES6以及ES Harmony之间的区别相关推荐

  1. Elasticsearch(一)——Es安装(三个必安工具、安装各种类型分词器)、Es 十大核心概念、通过 Kibana 操作 Es(中文分词、Es各种索引命令操作)

    Elasticsearch(一)--Es安装(三个必安工具.安装各种类型分词器).Es 十大核心概念.通过 Kibana 操作 Es(中文分词.Es各种索引命令操作) 一.Elasticsearch ...

  2. java读取ES配置生成ES管理类,获取ES连接

    java读取ES配置生成ES管理类,获取ES连接 1.Elasticsearch是基于Lucene开发的一个分布式全文检索框架,向Elasticsearch中存储和从Elasticsearch中查询, ...

  3. 自建ES迁移至阿里云ES(使用脚本及logstash同步)

    搭建测试3节点ES集群,官网下载所需的版本进行解压运行,ECS与阿里云ES在同一地域可用区,并在相同的VPC内. # mkdir /usr/java # tar xvf jdk-8u162-linux ...

  4. [ECMAScript] 谈谈你对es6的module体系的理解

    [ECMAScript] 谈谈你对es6的module体系的理解 es5的模块规范出来之前,前端也实现了比如AMD CMD模块规范,对前端模块进行管理. es6的模块规范在语言层面实现了模块功能 为什 ...

  5. 6.ES中什么是索引(ES中的索引指的是库)的分片和备份(副本)?ES中的关键词有哪些? 嘻哈的简写笔记——Elastic Search

    1.ES中什么是索引(ES中的索引指的是库)的分片和备份(副本)? 分片是对索引的切分存储:备份是对分片的备份: ES的服务中,可以创建多个索引(ES中的索引指的是库):每一个索引默认被分成5片存储: ...

  6. Rollup failed to resolve import “element-plus/es/components“ from “node_modules/element-plus/es/inde

    –> Rollup failed to resolve import "element-plus/es/components" from "node_modules ...

  7. es文件搜索不到win7服务器,es文件管理器,教您es文件浏览器怎么用

    手机已经成为了生活必需品,但是很多的用户都只是停留在表面,对手机有深入研究的用户就知道es文件浏览器是什么了,ES,全球主动下载超过3亿次,安卓文件管理第一品牌.更好地管理你的手机.平板.家里电脑和云 ...

  8. OpenGL ES着色器语言(GLSL ES)规范 ——下篇

    文章目录 前言 分支和循环 if.if-else for continue.break.discard 着色器内置变量 函数 函数定义 规范声明 webgl内置函数 存储限定字 const attri ...

  9. ES6:export default 和 export 区别

    ES6:export default 和 export 区别 引用:https://blog.csdn.net/zhooson/article/details/78903234 export defa ...

最新文章

  1. 文本框自动提示_Excel办公小技巧,使用艺术字与文本框,就是那么的简单
  2. PAT甲级1016 Phone Bills :[C++题解]字符串处理(复杂题)(C语言格式化读入、输出很便利!!!)
  3. python3随记——字符编码
  4. ospf-cost-FR选路实验
  5. thymeleaf加载不了js引用_网站首页加载慢解决方案
  6. [mybatis]映射文件_select_返回集合(List,Map)
  7. tornado框架hello world实践
  8. 揭秘丨7分钟看懂华为云鲲鹏Redis背后的自研技术
  9. HDU2012 素数判定【入门】
  10. ddr3ddr4 lpddr4速率_LPDDR4和LPDDR3性能差别多少 LPDDR4和LPDDR3参数对比
  11. signature=c31ee9b23a444aeb59534b250024e5ac,Assembling unit for tube components
  12. 贵如油的春雨都是润物细无声的么?——记2021年首场大范围雷雨强对流天气
  13. 闩锁和锁(Latches and Locks)
  14. 基于微信小程序的社区垃圾回收管理系统小程序
  15. 2022年9月电子学会Python等级考试试卷(一级)答案解析
  16. 斐讯n1遥控器app(支持休眠和唤醒)——WiFi篇
  17. 静态路由的配置 简单实验图解
  18. C.Defuse the Bombs(简单二分)
  19. 新手上路--分享20个无版权的高清图库素材网站
  20. 送书 | 知乎阅读300w+的生信学习指南(更新版)

热门文章

  1. php wget,Linux_Linux下载工具wget和axel简介,Wget Wget是一个十分常用命令 - phpStudy
  2. Linux 命令 —— scp linux之间复制文件和目录
  3. Mysql —— C语言链接mysql数据库,命令行形式(getopt()函数),用户、用户组增删改查(用户组表内有用户控制的策略字段)
  4. 关于引用与指针实现多态的一些记录
  5. mysql存储过程或函数中传入参数与表字段名相同引发的悲剧
  6. debian7更换gcc版本的二种方法分享
  7. 曼昆《经济学原理》(第五版)习题解答 第三章 相互依存性与贸易的好处
  8. Ribbon For WPF的使用
  9. 644 - Immediate Decodability
  10. 开始新的BLOG了!!