跳转到内容

ECMAScript

本页使用了标题或全文手工转换
维基百科,自由的百科全书
ECMAScript
编程范型多重編程範式基于原型编程函數程式語言指令式編程
設計者布蘭登·艾克Ecma國際
发行时间1997年,​28年前​(1997
当前版本
    編輯維基數據鏈接
    型態系統弱类型動態
    網站ecma-international.org 編輯維基數據鏈接
    主要實作產品
    SpiderMonkeyV8ActionScriptJScriptQtScriptInScript英语InScript (JavaScript engine)
    啟發語言
    SelfHyperTalk英语HyperTalkAWKCPerlPythonJavaScheme
    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中定义的脚本语言规范。这种语言在万维网上应用广泛,它往往被称为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到下一版草案的綜合評分

    外部連結

    [编辑]
    pFad - Phonifier reborn

    Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

    Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


    Alternative Proxies:

    Alternative Proxy

    pFad Proxy

    pFad v3 Proxy

    pFad v4 Proxy