65.9K
CodeProject 正在变化。 阅读更多。
Home

JavaScript、ECMAScript 与历史

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.33/5 (3投票s)

2016年6月13日

CPOL

5分钟阅读

viewsIcon

12171

本文主要介绍 JavaScript、ECMAScript、基本术语和发布历史。

引言

作为一名 JavaScript 从业者和学生,过去几年过得非常激动人心,因为出现了许多新特性,而且未来的版本和规范也让事情变得非常有趣。

然而,JavaScript 语言虽然有趣,但其词汇、术语和发布历史却有些复杂。

在本文中,我将带您深入了解这些细节,并追溯一些历史。

历史

JavaScript 由 Brendon Eich 于 1995 年 5 月在 Netscape 工作期间开发。他被要求为 Web 创建一种类似 Java 的语言,但 Eich 决定开发一种易于上手的语言。

最初,它被命名为 Mocha,然后正式更名为 LiveScript。后来,Netscape 与 Sun 合作,并以 JavaScript 的名称发布了它。

几年后,Microsoft Internet Explorer 采用了该语言,并推出了自己的实现 Jscript。

后来,Netscape 决定将该语言交给 Ecma International 来制定标准并指导 JavaScript 的发展方向,因此 ECMAScript 这个名字应运而生。

ECMAScript 在 1997-1999 年间发布了几个版本(ECMAScript 3),之后近十年都没有新的版本发布。当时,Microsoft Internet Explorer 占据主导地位,但在改进语言方面却进展不大,于是 Firefox 和其他一系列浏览器应运而生,焦点重新回到了 ECMAScript。

基本词汇

JavaScript

JavaScript 是一种跨平台、面向对象、强大但轻量级的编程语言。最初,JavaScript 是作为 Web 浏览器的核心开发的,是一种 Web 浏览器能够理解和使用的语言。但如今,它已被广泛应用于各种应用程序,包括移动、桌面、游戏和服务器端开发。

随着各种基于 JavaScript 的框架和库的出现,JavaScript 已成为当今最常用的语言之一。

一门真正的未来语言。

ECMAScript

像 JavaScript (Sun) 和 Jscript (Microsoft) 这样的术语已经被占用,因此在标准化时,选择了“ECMAScript”这个名称,因为相应的标准由 ECMA International 托管。

目前,JavaScript 和 ECMAScript 这两个术语在实际中几乎可以互换使用。通常,当人们提到语言时,会使用 JavaScript 这个词,而当他们提到版本时,则使用 ECMAScript。

ECMA-262

ECMA-262 是 ECMAScript 语言的官方规范。它由 ECMA International 维护。

ECMA 技术委员会 39 (TC39)

开发 ECMA-262 的团队,包括 Eich 和其他人。

ECMAScript 发布历史

ECMAScript 1 和 ECMAScript 2

ECMAScript 的第一个版本,即 ECMAScript 1,于 1997 年 6 月发布。它包含了所有基本内容,例如:

  • Types
  • 对象
  • 运算符
  • 函数
  • 注释
  • 表达式
  • 运算符

还有更多。

下一个版本于 1998 年 6 月发布,重点在于标准化规范,并使其完全符合 ISO/IEC 16262 国际标准。

ECMAScript 3

1999 年 12 月,发布了一个新版本,即 ECMAScript 3。这个版本是一个重要的里程碑,因为它得到了所有浏览器的支持。主要亮点包括:

  • 正则表达式
  • 异常处理 (try/catch)
  • 更严格的错误定义

ECMAScript 4 (废弃)

ECMAScript 4 被开发为下一个版本,但 TC39 在功能集上未能达成一致。最终,委员会就以下四点达成一致:

引用

1. 集中精力与所有各方充分合作开发 ES3.1,并以在明年早些时候实现两个可互操作的实现为目标。

2. 合作进行 ES3.1 之后的下一步工作,这将包括语法扩展,但其语义和语法创新将比 ES4 更为适度。

3. 一些 ES4 的提案已被认定为不适用于 Web,并且已永久排除:包、命名空间和早期绑定。这一结论是 Harmony 的关键。

4. ES4 中的其他目标和想法正在被重新表述,以保持委员会的共识;这包括基于现有 ES3 概念并结合提议的 ES3.1 扩展的类概念。

ECMAScript 5

2009 年 12 月发布的新版本,其功能得到了大多数浏览器的支持。这个版本带来了一些变化,彻底改变了我们看待 JavaScript 的方式,例如严格模式、JSON 支持等。主要亮点包括:

  • 严格模式
  • JSON 的库支持
  • Array 和对象上的各种新方法,如 forEachfilterreducesome 等。
  • 对象的 Getter 和 Setter

ECMAScript 2015 (ES6)

2015 年 6 月发布的 ES6 或 ECMAScript 2015 新版本,拥有非常广泛的功能、代码标准和语法。尽管到目前为止,大多数浏览器都不支持这些功能中的许多。主要亮点包括:

  • 从基于原型的 OOP(面向对象编程)转向基于类的 OOP,引入了一组新的关键字和概念,如 Class、Module、Static 和 getter/setter。
  • 块级作用域变量和函数
  • 箭头函数
  • Promise 的引入
  • 国际化和本地化
  • Typed Array
  • Reflection 和 proxies (元编程)

ECMAScript 2016 (ES7) (开发中)

ES7 (ECMAScript 2016) 的最终功能集最近已确定,似乎是一个小版本更新。新功能包括:

  • Array 的 includes 函数
  • 指数运算符

ECMAScript 2017 (开发中)

ECMAScript 2017 仍处于非常早期阶段,功能集尚未最终确定。但在 ES6 之后,路线图看起来相当清晰,重点将放在面向对象编程、更好的元编程、SIMD 类型以及在 Array 和对象中引入各种其他函数以及异步编程等方面。

来源与相关阅读

  1. http://www.2ality.com/2011/03/javascript-how-it-all-began.html
  2. https://en.wikipedia.org/wiki/ECMAScript
  3. https://mail.mozilla.org/pipermail/es-discuss/2008-August/003400.html
© . All rights reserved.