JavaScript的历史、规范和相关知识介绍

在百度上查关于Java和JavaScript的区别,看到来自java官网http://www.java.com上的一段文字:

Java 是一种 OOP 编程语言,而 Java Script 是一种 OOP 脚本语言。 Java 创建在虚拟机或浏览器中运行的应用程序,而 JavaScript 代码仅在浏览器中运行。 Java 代码需要进行编译,而 JavaScript 代码都在文本中。

所以,JavaScript并不是Java,本文讲述其发展历史。对于理解JavaScript来说,其发展历史非常重要。

JavaScript的发展历史

Javascript诞生于1995年5月,起这个名字仅仅是出于商业的考虑,当时Netscape决定开发一种可以与Java互补且语法类似的脚本语言。开发者Brendan Eich在 Effective JavaScript 一书中说“1995年在管理阶层胁迫性且相互冲突的命令之下,我在10天内建立了javaScript。”

1995年5月,这个新的语言被命名为Mocha;1995年9月,改名为LiveScript;1995年12月,改名为JavaScript,以便搭上Java这个热门话题。1996年8月,微软公司在其IE上推出类似的脚本语言:JScript。

1997年6月,语言规范 ECMA-262 正式由ECMA(欧洲计算机制造商协会,European Computer Manufacturers Association)发布,被称为 ECMAScript。不管是JavaScript、JScript还是后来的TypeScript、ActionScript都实现了ECMAScript。

1999年12月ECMA-262的第三版发布,简称ES3。此后十年内,没有发布新的版本,ES3成为JavaScript发展历史上重要的规范。

由于种种原因,ES4被否决,未能发布。

2009年12月,原预计被发布为ES3.1的版本,被重新命名为ES5,正式发布。ES5厘清了ES3中许多模糊不清的规范,增加了严格模式(Strict Mode),设值函数、取值函数、更多的对象属性、JSON支持。ES5很多特性是ES6的基础,是重大的规范版本。

基于Chrome V8引擎的JavaScript运行环境开发的Node.js于2009年5月发布,将JavaScript带出了浏览器的世界。Node.js积极支持了讨论中的ES6。

2015年6月,ES6正式发布,又被称为ECMAScript 2015。由于Node.js和主流浏览器的支持,ES6的普及率迅速上升,成为ECMAScript历史上重大版本。

ES6之后,ECMAScript的版本采用了年份来区分版本,每年6月发布新的版本。

本文写作时,最新的规范版本是ES13,即ECMAScript 2022。

JavaScript的兼容性查询

Node.js 官方提供了 http://node.green 网站,在上面可以查询各个版本的 Node.js 对ECMAScript 支持的兼容性版本。

http://node.green 网站上可以进入kangax’s compat-table https://github.com/kangax/compat-table ,全面性针对Javascript生态进行了兼容性测试,包括了浏览器、转译器、Polyfill、后端等。

主要的JavaScript的引擎

(1)V8:Google开发的开放原始码JavaScript引擎,也是Node.js使用的引擎。微软的Edge浏览器用的也是V8。
(2)SpiderMonkey:目前用于FireFox浏览器。
(3)JavaScriptCore:用于Apple的Safari浏览器。
(4)Chakra:用于IE浏览器。
(5)Rhino:独立于浏览器的引擎,来自1997年的Rhino计划的引擎。
(6)QuickJS:Fabrice Bellard发表于2019年7月。
(7)Hermes:Facebook于2019年发布的引擎。

版权声明:本文由本站整理而成,转载需获得本站同意。