ECMAScript

ECMAScript
编程范型多重編程範式基于原型编程函數程式語言指令式編程
設計者布蘭登·艾克Ecma國際
发行时间1997年,​27年前​(1997
当前版本
    編輯維基數據鏈接
    型態系統弱类型動態
    網站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月,​26年前​(1997-06
    最新版本
    第 13 版
    2022年6月,​22個月前​(2022-06
    格式类型脚本語言
    网站ECMA-262ECMA-290
    ECMA-327ECMA-357
    ECMA-402

    ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会)在标准ECMA-262中定义的脚本语言规范。这种语言在万维网上应用广泛,它往往被称为JavaScriptJScript,但实际上后两者是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最新版本的相容性。

    腳本引擎 參考應用程式 相容性[11]
    ES5[12] ES6[13] ES7[14] 較新(2016+)[14][15]
    Chakra Microsoft Edge 18 100% 96% 100% 48%
    SpiderMonkey Firefox 94 100% 98% 100% 100%
    Chrome V8 Google Chrome 95、Opera 80、Microsoft Edge 95 100% 98% 100% 100%
    JavaScriptCore(Nitro) Safari 15 100% 99% 100% 90%

    該測試的內容託管在官方存儲庫 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 環境。

    參考文獻

    1. ^ Krill, Paul. JavaScript creator ponders past, future. InfoWorld. 2008-06-23 [2013-10-31]. (原始内容存档于2014-09-20). 
    2. ^ Press Release. Web.archive.org. [2013-10-31]. (原始内容存档于2007-09-16). 
    3. ^ JScript VS JavaScript. About.com. 2015-11-25 [2018-06-30]. (原始内容存档于2015-11-26). 
    4. ^ ECMA-262 5th Edition: ECMAScript Language Specification (PDF). [2010-04-08]. (原始内容存档 (PDF)于2015-04-12). 
    5. ^ Changes to JavaScript, Part 1: EcmaScript 5. [2009-07-07]. (原始内容存档于2011-02-09). 
    6. ^ 存档副本. [2009-07-07]. (原始内容存档于2011-08-22). 
    7. ^ InfoQ: ECMAScript 5正式发布. [2010-04-08]. (原始内容存档于2010-04-10). 
    8. ^ Javascript面面觀:核心篇《ECMA-262 Edition 5》. [2010-04-08]. (原始内容存档于2011-02-18). 
    9. ^ ECMAScript 2016 Language Specification. Ecma International. 2016-06 [2016-08-20]. (原始内容存档于2016-08-20). 
    10. ^ ECMAScript 2017 (ES8): the final feature set. 2ality. [2018-04-23]. (原始内容存档于2018-04-23). 
    11. ^ ES5 is the baseline for this test suite. The conformance rate for other editions reflects support for new features only, not a comprehensive score.
    12. ^ ECMAScript 5 相容性列表. kangax.github.io. [2018-11-18]. (原始内容存档于2018-11-19) (英语). 
    13. ^ ECMAScript 6 相容性列表. kangax.github.io. [2018-11-18]. (原始内容存档于2018-11-17) (英语). 
    14. ^ 14.0 14.1 ECMAScript 2016+ 相容性列表. kangax.github.io. [2018-11-18]. (原始内容存档于2018-11-24) (英语). 
    15. ^ 包括從ES7到下一版草案的綜合評分

    外部連結

    • icon计算机程序设计主题
    • 官方网站 在维基数据上编辑此内容

    范型
    过程式
    面向对象
    多范型
    函数式
    逻辑式
    脚本语言
    动态语言
    Shell语言
    ECMA-262
    特定平台
    .NET
    JVM
    特定领域
    科学计算
    GPU计算
    • Cg/HLSL
    • GLSL
    • Brook英语BrookGPU
    • OpenCL
    • CUDA/PTX英语Parallel Thread Execution
    • Futhark
    • SPIR-V英语Standard Portable Intermediate Representation
    数据查询
    可视化
    传媒设计
     
    其它
    • 分类 目录
    • 列表级条目 列表
    • 历史
    • 比较英语Comparison of programming languages
    • 时间线英语Timeline of programming languages
    網頁技術與標準
    文档呈现语言
    样式格式描述语言
    动态网页技术
    用戶端互動技术
    用戶端手稿語言
    标识定位语言
    文档纲要语言
    * 代表由W3C制定和维护的标准与规范
    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
    函式庫
    • Backbone.js
    • SWFObject英语SWFObject
    • SWFAddress英语SWFAddress
    • Lodash
    人物
    其他
    • 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
    • JSDoc英语JSDoc
    編輯器(比较英语Comparison of JavaScript-based source code editors
    引擎
    軟體框架
    相關語言
    相關技術
    軟體套件管理系統
    伺服器端
    單元測試
    • Jasmine英语Jasmine (JavaScript framework)
    • Mocha英语Mocha (JavaScript framework)
    • QUnit英语QUnit
    • JavaScript单元测试框架列表英语List of unit testing frameworks#JavaScript
    人物
    ISO標準
    列表
    国际标准化组织的标准列表英语List of International Organization for Standardization standards
    国际标准化组织拉丁化方案列表
    国际电工委员会标准列表英语List of IEC standards
    1–9999
    • 1
    • 2
    • 3英语ISO 3
    • 4
    • 5
    • 6
    • 7英语ISO 7
    • 9
    • 16
    • 31
      • -0英语ISO 31-0
      • -1英语ISO 31-1
      • -2英语ISO 31-2
      • -3英语ISO 31-3
      • -4英语ISO 31-4
      • -5英语ISO 31-5
      • -6英语ISO 31-6
      • -7英语ISO 31-7
      • -8英语ISO 31-8
      • -9英语ISO 31-9
      • -10英语ISO 31-10
      • -11英语ISO 31-11
      • -12英语ISO 31-12
      • -13英语ISO 31-13
    • 128
    • 216
    • 217英语ISO 217
    • 226英语ISO 226
    • 228英语British standard pipe thread
    • 233
    • 259
    • 269
    • 302英语Kappa number
    • 306英语Vicat softening point
    • 428英语ISO 428
    • 518
    • 519
    • 639
    • 646
    • 690
    • 732
    • 764英语Antimagnetic watch
    • 843
    • 898英语ISO 898
    • 965英语ISO 965
    • 1000
    • 1004英语Magnetic ink character recognition
    • 1007
    • 1073-1英语OCR-A font
    • 1413英语ISO 1413
    • 1538
    • 1745英语ISO 1745
    • 1989
    • 2014英语ISO 2014
    • 2015英语ISO 2015
    • 2022
    • 2047英语ISO 2047
    • 2108
    • 2145
    • 2146英语ISO 2146
    • 2240
    • 2281英语Water Resistant mark
    • 2709英语ISO 2709
    • 2711英语ISO 2711
    • 2788英语ISO 2788
    • 2852英语ISO 2852
    • 3029英语126 film
    • 3103
    • 3166
    • 3297
    • 3307英语ISO 3307
    • 3602
    • 3758
    • 3864英语ISO 3864
    • 3901
    • 3977英语ISO 3977
    • 4031英语ISO 4031
    • 4157英语ISO 4157
    • 4217
    • 4909英语ISO/IEC 4909
    • 5218
    • 5428英语ISO 5428
    • 5775英语ISO 5775
    • 5776英语ISO 5776
    • 5800
    • 5807
    • 5964英语ISO 5964
    • 6166
    • 6344英语ISO 6344
    • 6346英语ISO 6346
    • 6385英语ISO 6385
    • 6425英语Water Resistant mark
    • 6429英语ANSI escape code
    • 6438
    • 6523英语ISO 6523
    • 6709
    • 7001
    • 7002英语ISO 7002
    • 7064英语ISO 7064
    • 7098
    • 7185
    • 7200英语ISO 7200
    • 7498
    • 7637
    • 7736英语ISO 7736
    • 7810
    • 7811英语ISO/IEC 7811
    • 7812
    • 7813英语ISO/IEC 7813
    • 7816
    • 8000
    • 8178英语ISO 8178
    • 8217
    • 8571英语FTAM
    • 8583英语ISO 8583
    • 8601
    • 8632
    • 8652英语ISO/IEC 8652
    • 8691英语ISO 8691
    • 8807英语Language Of Temporal Ordering Specification
    • 8820-5英语ISO/IEC 8820-5
    • 8859
    • 8879
    • 9000/9001
    • 9075
    • 9126
    • 9293
    • 9241英语ISO 9241
    • 9362
    • 9407
    • 9506英语Manufacturing Message Specification
    • 9529英语ISO 9529
    • 9564英语ISO 9564
    • 9594
    • 9660
    • 9897英语ISO 9897
    • 9899
    • 9945
    • 9984
    • 9985
    • 9995
    10000–19999
    • 10005英语ISO 10005
    • 10006英语ISO 10006
    • 10007英语ISO 10007
    • 10116英语ISO/IEC 10116
    • 10118-3英语Whirlpool (cryptography)
    • 10160英语ISO 10160
    • 10161英语ISO 10161
    • 10165英语Guidelines for the Definition of Managed Objects
    • 10179英语Document Style Semantics and Specification Language
    • 10206
    • 10218英语ISO 10218
    • 10303
      • -11英语EXPRESS (data modeling language)
      • -21
      • -22英语ISO 10303-22
      • -28英语ISO 10303-28
      • -238英语STEP-NC
    • 10383英语ISO 10383
    • 10487英语ISO 10487
    • 10585
    • 10589
    • 10646
    • 10664
    • 10746英语RM-ODP
    • 10861英语Multibus
    • 10957
    • 10962英语ISO 10962
    • 10967英语ISO/IEC 10967
    • 11073英语ISO/IEEE 11073
    • 11170英语ISO 11170
    • 11179英语ISO/IEC 11179
    • 11404英语ISO/IEC 11404
    • 11544
    • 11783英语ISO 11783
    • 11784英语ISO 11784 & 11785
    • 11785英语ISO 11784 & 11785
    • 11801
    • 11898
    • 11940 (-2英语ISO 11940-2)
    • 11941英语ISO/TR 11941
    • 11941 (TR)英语ISO/TR 11941
    • 11992英语ISO 11992
    • 12006英语ISO 12006
    • 12182英语ISO/IEC TR 12182
    • 12207英语ISO/IEC 12207
    • 12234-2英语Tag Image File Format / Electronic Photography
    • 13211
    • 13216英语Isofix
    • 13250
    • 13399英语ISO 13399
    • 13406-2英语ISO 13406-2
    • 13450英语110 film
    • 13485英语ISO 13485
    • 13490英语ISO 13490
    • 13567英语ISO 13567
    • 13568英语Z notation
    • 13584英语ISO 13584
    • 13616
    • 14000
    • 14031
    • 14224英语ISO 14224
    • 14289英语PDF/UA
    • 14396
    • 14443
    • 14496
      • -2英语MPEG-4 Part 2
      • -3英语MPEG-4 Part 3
      • -6英语Delivery Multimedia Integration Framework
      • -10
      • -11英语MPEG-4 Part 11
      • -12英语MPEG-4 Part 12
      • -14
      • -17
      • -20
    • 14644英语ISO 14644
    • 14649英语STEP-NC
    • 14651英语ISO 14651
    • 14698英语ISO 14698
    • 14750英语ISO 14750
    • 14764
    • 14882
    • 14971英语ISO 14971
    • 15022英语ISO 15022
    • 15189英语ISO 15189
    • 15288英语ISO/IEC 15288
    • 15291英语Ada Semantic Interface Specification
    • 15292英语ISO 15292
    • 15398英语ISO 15398
    • 15408
    • 15444
      • -3英语Motion JPEG 2000
    • 15445
    • 15438
    • 15504
    • 15511
    • 15686英语ISO 15686
    • 15693英语ISO/IEC 15693
    • 15706
      • -2英语ISO 15706-2
    • 15707
    • 15897英语ISO 15897
    • 15919
    • 15924
    • 15926英语ISO 15926
    • 15926 WIP英语ISO 15926 WIP
    • 15930英语PDF/X
    • 16023英语MaxiCode
    • 16262
    • 16612-2英语PDF/VT
    • 16750
    • 16949 (TS)
    • 17024英语ISO/IEC 17024
    • 17025英语ISO/IEC 17025
    • 17100英语ISO 17100:2015
    • 17203
    • 17369英语SDMX
    • 17442英语Legal Entity Identifier
    • 17799
    • 18000英语ISO/IEC 18000
    • 18004
    • 18014英语ISO/IEC 18014
    • 18245英语ISO 18245
    • 18629英语Process Specification Language
    • 18916英语Photographic Activity Test
    • 19005
    • 19011英语ISO 19011
    • 19092 (-1英语ISO 19092-1
    • -2)英语ISO 19092-2
    • 19114英语ISO 19114
    • 19115英语ISO 19115
    • 19125英语Simple feature access
    • 19136
    • 19439英语ISO 19439
    • 19500
    • 19501
    • 19502
    • 19503英语XML Metadata Interchange
    • 19505
    • 19506英语Knowledge Discovery Metamodel
    • 19507英语Object Constraint Language
    • 19508
    • 19509英语XML Metadata Interchange
    • 19510
    • 19600:2014英语ISO 19600:2014
    • 19752英语ISO/IEC 19752
    • 19757英语RELAX NG
    • 19770英语ISO/IEC 19770
    • 19775-1
    • 19794-5英语ISO/IEC 19794-5
    • 19831英语Cloud Infrastructure Management Interface
    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英语ISO 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”的页面