日期:2014-05-16  浏览次数:20413 次

JavaScript与ECMAScript——先有蛋,再有鸡

今天上午从床上爬起来,发现窗外天是黑的,行人们躲避着渐渐变大的雨点。我打开台灯,看见一本Nicholas C.Zakas的《JavaScript高级程序设计》中文版斜躺在桌子上。想起来了!昨晚打算看一下这本书,打算梳理一下基础知识的。
翻开第一章,发现JavaScript简史部分讲的很清晰。看完后,我根据作者的文字整理了一下:

?

JavaScript 核心被标准化的简史

  • <!---->? 1992 年左右, Nombas 公司在其一款共享产品 CEnvi 中,发布了一种嵌入式脚本语言 ScriptEase (曾用名: C-minus-minus )。
  • <!---->?? <!---->Netscape Navigator 崭露头角时, Nombas 公司提供了一种可以嵌入网页中的 CEnvi 版本。网景受此启发,开始考虑开发一种可以嵌入浏览器的客户端脚本语言。
  • <!---->?? <!---->1995 年,网景与 Sun 共同着手为即将发行的 Netscape Navigator2.0 实现了 LiveScript Netscape Navigator2.0 正式发布前, LiveScript 更名为 JavaScript ,名字中使用“ Java ”,这样会时髦一些。
  • <!---->?? <!---->微软进入浏览器领域, IE3.0 搭载了一个 JavaScript 的克隆版: JScript 。此时并存三种类似的脚本语言实现: Netscape Navigator3.0 中的 JavaScript IE3.0 中的 Jscript CEnvi 中的 ScriptEase
  • <!----><!---->和其他充满厂商竞争的语言一样,多个厂商实现的 JavaScript 版本迫切需求一个统一的抽象标准,“标准化一个通用、跨平台、中立于厂商的脚本语言的语法和语义”。 1997 年, JavaScript 1.1 作为一个草案提交给欧洲计算机制造商协会( ECMA ),随后,由来自网景、 Sun 、微软、 Borland 等公司的程序员组成的 TC39 (第 39 技术委员会)锤炼出了 ECMA-262 ,该标准定义了叫做 ECMAScript 的全新脚本语言。

ECMAScript 的内容

ECMAScript 并不与任何具体浏览器等宿主环境绑定,它关注的是为各种宿主环境提供核心的脚本编程能力。常见的宿主环境有浏览器、 Flashplayer 等。

ECMAScript 描述了以下内容:语法、类型、语句、关键字、保留字、运算符和对象。

ECMAScript 是一种脚本语言标准,其他的语言可以实现 ECMAScript 来作为功能的核心:

<!----><!----><!---->

? ECMAScript

如今,主流浏览器都努力提供了了 ECMA-262 的第三版的 JavaScript 实现。

需要注意的是, ECMAScript 并不是 JavaScript 的唯一,也不是唯一被标准化的部分。一个完整的 JavaScript 实现由以下三部分组成:

  • <!----><!---->核心 ECM