回到JavaScript的诞生,网景在1996年和微软的大战中败北后,决定将JavaScript提交给国际标准化组织ECMA-欧洲计算机制造商协会,希望JavaScript能成为国际标准。ECMA的第39号技术委员会,简称TC39,负责制定和审核这个标准,委员会成员均来自业内各大公司的工程师,定期召开会议,所有会议记录全部公开。
1997年7月,ECMA组织,发布262号标准文件,ECMA-262第一版正式诞生,它规定了浏览器脚本语言的标准,并把这种语言定义为ECMAScript,于是ECMA-262第一版也叫ECMAScript1.0,之所以不叫JavaScript,是因为该商标被网景注册使用,另一方面也想体现这门语言的标准的制定者是ECMA,这样有利于保证这门语言的开放和中立性。
ECMAScript是一种规范,它只定义这门语言的核心语法和功能,而JavaScript是它的标准实现。
ECMA不管部署环境只定义语言标准,而其他生态的标准。比如DOM标准就是由W3C组织制定。
ECMA标准后来也被ISO- 国际标准化组织所批准,ISO是一个全球性的非政府组织,负责制定国际标准,旨在推动各国之间在技术、工业、商业和社会方面的标准化,促进全球贸易、交流与合作。
ECMAScript简称ES,由于JS是它的标准实现,因此两者在概念上是可以平等互换的。
上面列出了
ES1-ES6的版本特性和节点,其中ES3、5、6是现代前端开发中,使用最多的版本,尤其是ES6,但是后面新版本的一些特性,比如ES8中async、await也被广泛使用。注意,ES只是这门语言的标准规范,JS是ES的实现。由于JS运行在浏览器内置的JS引擎中,不同浏览器厂商的内部的核心组件(JS引擎、渲染引擎、排版引擎)等实现方式不一样,因此使用ES的新版本发布的特性时可能会有兼容性问题,包括HTML、CSS。
不过好消息是,目前主流的四大浏览器对于WEB核心三大技术 JS -HTML - CSS支持已经相当友好了。
由于WEB技术的繁杂,在发展阶段,诞生了很多生态,比如Vue之类的开发框架,TS(JS语言超集)、服务端NodeJS体系、这里只讲述JS语言体系本身的内容