型態系統 | 弱类型、動態 |
---|
網站 | ecma-international.org |
---|
主要實作產品 |
---|
SpiderMonkey、V8、ActionScript、JScript、QtScript、InScript(英语:InScript (JavaScript engine)) |
啟發語言 |
---|
Self、HyperTalk(英语:HyperTalk)、AWK、C、Perl、Python、Java、Scheme |
ECMAScript |
扩展名 | .es |
---|
互联网媒体类型 | application/ecmascript |
---|
开发者 | 昇陽電腦公司 Ecma國際 |
---|
首次发布 | 1997年6月,27年前(1997-06) |
---|
最新版本 | 第 13 版 2022年6月,2年前(2022-06) |
---|
格式类型 | 脚本語言 |
---|
网站 | ECMA-262ECMA-290 ECMA-327ECMA-357 ECMA-402 |
---|
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会)在标准ECMA-262中定义的脚本语言规范。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。
历史
ECMAScript是由网景的布蘭登·艾克開發的一種腳本語言的標準化規範;最初命名為Mocha,後來改名為LiveScript,最後重新命名為JavaScript[1]。1995年12月,升阳与网景聯合發表了JavaScript[2]。1996年11月,网景公司将JavaScript提交给欧洲计算机制造商协会进行标准化。ECMA-262的第一个版本于1997年6月被Ecma组织采纳。ECMAScript是由ECMA-262标准化的脚本语言的名称。
儘管JavaScript和JScript与ECMAScript相容,但包含超出ECMAScript的功能[3]。
版本
版本 | 发表日期 | 与前版本的差异 |
1 | 1997年6月 | 首版 |
2 | 1998年6月 | 格式修正,以使得其形式与ISO/IEC16262国际标准一致 |
3 | 1999年12月 | 强大的正则表达式,更好的词法作用域链处理,新的控制指令,异常处理,错误定义更加明确,数据输出的格式化及其它改变 |
4 | 放棄 | 由於關於語言的複雜性出現分歧,第4版本被放棄,其中的部分成為了第5版本及Harmony的基礎;由ActionScript實現 |
5 | 2009年12月 | 新增「嚴格模式(strict mode)」,一個子集用作提供更徹底的錯誤檢查,以避免結構出錯。澄清了許多第3版本的模糊規範,並適應了與規範不一致的真實世界實現的行為。增加了部分新功能,如getters及setters,支持JSON以及在物件屬性上更完整的反射[4][5][6][7][8] |
5.1 | 2011年6月 | ECMAScript标5.1版形式上完全一致于国际标准ISO/IEC 16262:2011。 |
6 | 2015年6月 | ECMAScript 2015(ES2015),第 6 版,最早被称作是 ECMAScript 6(ES6),添加了类和模块的语法,其他特性包括迭代器,Python风格的生成器和生成器表达式,箭头函数,二进制数据,静态类型数组,集合(maps,sets 和 weak maps),promise,reflection 和 proxies。作为最早的 ECMAScript Harmony 版本,也被叫做ES6 Harmony。 |
7 | 2016年6月 | ECMAScript 2016(ES2016),第 7 版,多個新的概念和語言特性[9] |
8 | 2017年6月 | ECMAScript 2017(ES2017),第 8 版,多個新的概念和語言特性[10] |
9 | 2018年6月 | ECMAScript 2018 (ES2018),第 9 版,包含了异步循环,生成器,新的正则表达式特性和 rest/spread 语法。 |
10 | 2019年6月 | ECMAScript 2019 (ES2019),第 10 版 |
11 | 2020年6月 | ECMAScript 2020 (ES2020),第 11 版 |
12 | 2021年6月 | ECMAScript 2021 (ES2021),第 12 版 |
13 | 2022年6月 | ECMAScript 2022 (ES2022),第 13 版 |
2004年6月Ecma组织发表了ECMA-357标准,它是ECMAScript的一个扩延,也被称为E4X(ECMAScript for XML)。
相容性
许多应用程序支持ECMAScript,尤其是网页浏览器。下列表格列出了目前版本的軟體與ECMAScript最新版本的相容性。
該測試的內容託管在官方存儲庫 https://github.com/tc39/test262 (页面存档备份,存于互联网档案馆) 中,也可以在 https://v8.github.io/test262/website/default.html (页面存档备份,存于互联网档案馆) 和 https://bakkot.github.io/test262-web-runner/ (页面存档备份,存于互联网档案馆) 上訪問最新的Web瀏覽器測試套件工具。官方存儲庫還指向由社區維護的其他項目測試套件,以測試其他例如 Node.js 的 ECMAScript / JavaScript 環境。
參考文獻
- ^ Krill, Paul. JavaScript creator ponders past, future. InfoWorld. 2008-06-23 [2013-10-31]. (原始内容存档于2014-09-20).
- ^ Press Release. Web.archive.org. [2013-10-31]. (原始内容存档于2007-09-16).
- ^ JScript VS JavaScript. About.com. 2015-11-25 [2018-06-30]. (原始内容存档于2015-11-26).
- ^ ECMA-262 5th Edition: ECMAScript Language Specification (PDF). [2010-04-08]. (原始内容存档 (PDF)于2015-04-12).
- ^ Changes to JavaScript, Part 1: EcmaScript 5. [2009-07-07]. (原始内容存档于2011-02-09).
- ^ 存档副本. [2009-07-07]. (原始内容存档于2011-08-22).
- ^ InfoQ: ECMAScript 5正式发布. [2010-04-08]. (原始内容存档于2010-04-10).
- ^ Javascript面面觀:核心篇《ECMA-262 Edition 5》. [2010-04-08]. (原始内容存档于2011-02-18).
- ^ ECMAScript 2016 Language Specification. Ecma International. 2016-06 [2016-08-20]. (原始内容存档于2016-08-20).
- ^ ECMAScript 2017 (ES8): the final feature set. 2ality. [2018-04-23]. (原始内容存档于2018-04-23).
- ^ ES5 is the baseline for this test suite. The conformance rate for other editions reflects support for new features only, not a comprehensive score.
- ^ ECMAScript 5 相容性列表. kangax.github.io. [2018-11-18]. (原始内容存档于2018-11-19) (英语).
- ^ ECMAScript 6 相容性列表. kangax.github.io. [2018-11-18]. (原始内容存档于2018-11-17) (英语).
- ^ 14.0 14.1 ECMAScript 2016+ 相容性列表. kangax.github.io. [2018-11-18]. (原始内容存档于2018-11-24) (英语).
- ^ 包括從ES7到下一版草案的綜合評分
外部連結
- 计算机程序设计主题
- 官方网站
范型 | |
---|
脚本语言 | |
---|
特定平台 | |
---|
特定领域 | |
---|
| |
---|
- 目录
- 列表
- 历史
- 比较(英语:Comparison of programming languages)
- 时间线(英语:Timeline of programming languages)
|
網頁技術與標準 |
---|
文档呈现语言 | |
---|
样式格式描述语言 | |
---|
动态网页技术 | |
---|
用戶端互動技术 | |
---|
用戶端手稿語言 | |
---|
标识定位语言 | |
---|
文档纲要语言 | |
---|
|
|
ECMAScript |
---|
语言 | |
---|
引擎列表 (引擎比较) | |
---|
框架 | 客户端 | - Ample SDK(英语:Ample SDK)
- Chaplin.js(英语:Chaplin.js)
- Dojo
- Echo
- Extjs
- Google網頁工具包
- JQuery
- Lively Kernel(英语:Lively Kernel)
- midori(英语:Midori JavaScript Framework)
- MochiKit(英语:MochiKit)
- MooTools(英语:MooTools)
- Prototype
- Pyjs(英语:Pyjs)
- qooxdoo(英语:qooxdoo)
- Rialto(英语:Rialto Toolkit)
- Rico
- script.aculo.us(英语:script.aculo.us)
- SmartClient(英语:SmartClient)
- SproutCore(英语:SproutCore)
- Spry(英语:Spry framework)
- Wakanda框架(英语:Wakanda (software))
- 雅虎UI库
|
---|
服务器 | - AppJet(英语:AppJet)
- Jaxer(英语:Jaxer#Aptana Jaxer)
- Node.js
- Deno
- WakandaDB(英语:Wakanda (software))
|
---|
多種實作 | - Cappuccino(英语:Cappuccino (application development framework))
- Objective-J(英语:Objective-J)
- PureMVC(英语:PureMVC)
|
---|
函式庫 | |
---|
|
---|
人物 | |
---|
其他 | - DHTML
- Ecma国际
- JSDoc(英语:JSDoc)
- JSGI(英语:JSGI)
- JSHint
- JSLint
- JSON
- JSSS(英语:JavaScript Style Sheets)
- Sputnik(英语:Sputnik (JavaScript conformance test))
- SunSpider(英语:Browser speed test#SunSpider)
- 异步模块定义(英语:Asynchronous module definition)
- CommonJS
|
---|
- 列表
- JavaScript库列表
- Ajax框架(英语:list of Ajax frameworks#JavaScript)
- 比较
- JavaScript框架(英语:Comparison of JavaScript frameworks)
- 服务器端JavaScript(英语:comparison of server-side JavaScript solutions)
|
|
|
---|
代码分析 | |
---|
編譯器 | |
---|
概念 | |
---|
调试工具 | - Firebug
- Komodo IDE(英语:Komodo IDE)
- Microsoft Script Debugger(英语:Microsoft Script Debugger)
- Microsoft Script Editor(英语:Microsoft Script Editor)
- Opera Dragonfly(英语:Opera Dragonfly)
- Venkman
- Safari
|
---|
文档生成器(英语:Documentation generator) | |
---|
編輯器(比较(英语:Comparison of JavaScript-based source code editors)) | |
---|
引擎 | |
---|
軟體框架 | - JavaScript框架比较(英语:Comparison of JavaScript frameworks)
- JavaScript库列表
|
---|
相關語言 | |
---|
相關技術 | |
---|
軟體套件管理系統 | |
---|
伺服器端 | |
---|
單元測試 | - Jasmine(英语:Jasmine (JavaScript framework))
- Mocha(英语:Mocha (JavaScript framework))
- QUnit(英语:QUnit)
- JavaScript单元测试框架列表(英语:List of unit testing frameworks#JavaScript)
|
---|
人物 | |
---|
|
|
---|
- 列表
- 国际标准化组织的标准列表(英语:List of International Organization for Standardization standards)
- 国际标准化组织拉丁化方案列表
- 国际电工委员会标准列表(英语:List of IEC standards)
| 1–9999 | |
---|
10000–19999 | |
---|
20000+ | - 20000
- 20022(英语:ISO 20022)
- 20121(英语:ISO 20121)
- 20400(英语:ISO 20400)
- 21000
- 21047(英语:International Standard Text Code)
- 21500(英语:ISO 21500)
- 21827:2002(英语:ISO/IEC 21827)
- 22000
- 22301
- 23270
- 23271
- 23360
- 24517(英语:PDF/E)
- 24613
- 24617(英语:ISO-TimeML)
- 24707(英语:Common Logic)
- 24778
- 25178(英语:ISO 25178)
- 25964(英语:ISO 25964)
- 26000
- 26262
- 26300
- 26324
- 27000 series
- 27000(英语:ISO/IEC 27000)
- 27001
- 27002
- 27006(英语:ISO/IEC 27006)
- 27729
- 28000(英语:ISO/PAS 28000)
- 29110(英语:ISO 29110)
- 29148(英语:Requirements engineering)
- 29199-2
- 29500
- 30170
- 31000(英语:ISO 31000)
- 32000
- 38500(英语:ISO/IEC 38500)
- 40500
- 42010(英语:ISO/IEC 42010)
- 45001
- 55000(英语:ISO 55000)
- 80000
- -1(英语:ISO 80000-1)
- -2
- -3(英语:ISO 80000-3)
|
---|
- 参见:
- ISO标准
- 所有前缀有“ISO”的页面
|
|