JavaScript 与 ECMAScript 的关系
一、JavaScript 与 ECMAScript 的关系
- JavaScript 是 ECMAScript 语法的一种最为流行的具体实现(除此之外比如 Flash 里的 ActionScript 也是一种实现);
- JavaScript 有浏览器、Node.js 等多种宿主环境,是一种日常的通称,各种宿主所扩充的 API 有差异,比如浏览器有
document
,而 Node.js 有process
,这些在统一语法规范 ECMAScript 中没有规定; - ECMAScript 是 ECMA 国际组织(www.ecma-international.org)负责的各种标准(/publications/standards/Standard)之一。
推荐参考教程:https://es6.ruanyifeng.com/
二、浏览器支持
目前主流的浏览器都对ECMAScript支持
- Opera 11.60 +
- Internet Explorer 9+(IE9不支持严格模式,IE10支持)
- Firefox 4 +
- Safari 5.1+(不支持Function.prototype.bind)
- Chrome 13+
详细支持情况可以看看 ECMAScript 5 compatibility table
新特性
ECMAScript5 Object的新属性方法
ECMAScript5 Array新增方法
ECMAScript5的其它新特性
querySelector和querySelectorAll
三、ECMAScript 的所有官方文件
(一)262 号规范(/publications/standards/Ecma-262)
定义:即狭义的 ECMAScript 规范。
版本:目前为止的版本(/publications/standards/Ecma-262-arch)有:
- 第 1 版(1997 年)
- 第 2 版(1998 年)
- 第 3 版(1999 年),IE 5.5 开始支持,前端功能丰富性和地位开始飞速进展,此后 IE 逐渐从规范探索性先驱走向跟进拖后腿的地位
- 第 4 版,过于激进而流产
- 第 5 版(2009 年),IE 8 及以前虽有部分实现但应理解为规范的探索性来历,而非规范的实现,IE 9 正式支持(仅除了严格模式),IE 10 开始全面支持
- 第 5.1 版(2011 年),第 5 版经调整措辞后,由更高等级、审核发布周期更长的组织确定下来的版本(换言之,通常单独提及 ECMAScript 5 和 ECMAScript 5.1 时,是不作区别的,指的都是 5.1)
- 第 6+n 版(2015+n 年)
(二)402 号规范(/publications/standards/Ecma-402)
定义:规定了虽然不属于 ECMAScript 本身、但各种实现应当统一做法的“地区差异化的接口”。
版本:目前为止的版本(/publications/standards/Ecma-402-arch)有:
- 第1版(2012年)
- 第2版(2015年)
- 第3版(2016年)
(三)404 号规范(/publications/standards/Ecma-404)
定义:规定了 ECMAScript 需要用到、产生自 ECMAScript 却成为独立通用标准的“JSON”。
版本:只有一版,并且已经冻结。
(四)414 号规范(/publications/standards/Ecma-414)
定义:规定了和 ECMAScript 相关的标准有哪些(即上述三条)。
版本:只有一版。
更多: