ECMAScript

出自Local Chinese Wikipedia
imported>A multi-conscious entity with the ID name "Sans Who Loves Programming"2026年3月28日 (六) 05:45的修訂 (内容扩充 维护清理)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
跳至導覽 跳至搜尋

Template:NoteTA 腳本錯誤:沒有「Infobox」這個模塊。腳本錯誤:沒有「Check for unknown parameters」這個模塊。 腳本錯誤:沒有「Infobox」這個模塊。腳本錯誤:沒有「Check for unknown parameters」這個模塊。 腳本錯誤:沒有「Lang」這個模塊。是一種由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](主要包括 `Array.prototype.includes`、指數運算符 `**`)
8 2017年6月 ECMAScript 2017(ES2017),第 8 版,主要特性包括:`async`/`await` 函數、共享內存與 `Atomics`、`Object.values()`/`Object.entries()`、字符串填充方法(`padStart`/`padEnd`)等[10]
9 2018年6月 ECMAScript 2018(ES2018),第 9 版,主要特性包括:異步迭代(`for-await-of`)、對象 rest/spread 屬性、正則表達式改進(`s` 標誌、命名捕獲組、後行斷言等)[11]
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 版
14 2023年6月 ECMAScript 2023 (ES2023),第 14 版,新增數組查找方法、WeakMap 的 symbol 鍵支持等[12]
15 2024年6月 ECMAScript 2024 (ES2024),第 15 版,新增 Well-Formed Unicode Strings、Promise.withResolvers、ArrayBuffer 可調整大小等特性[13]
16 2025年6月 ECMAScript 2025 (ES2025),第 16 版,新增語法提案包括集合字面量、RegExp 標誌 v 等[14]
17 預計2026年6月 ECMAScript 2026 (ES2026),第 17 版(草案),包含若干處於 stage 4 的提案[15]

2004年6月Ecma組織發表了ECMA-357標準,它是ECMAScript的一個擴延,也被稱為E4X(ECMAScript for XML)。

相容性[編輯]

許多應用程式支持ECMAScript,尤其是網頁瀏覽器。下列表格列出了目前版本的軟體與ECMAScript最新版本的相容性,數據基於官方 test262 測試套件[16]的通過率。

腳本引擎 參考應用程式 相容性(test262 通過率)[17]
ES2022 (ES13) ES2023 (ES14) ES2024 (ES15) ES2025 (ES16)
SpiderMonkey Firefox 136 100% 100% 99% 98%
V8 Google Chrome 134、Microsoft Edge 134、Opera 119 100% 100% 100% 99%
JavaScriptCore (Nitro) Safari 18.4 100% 100% 99% 97%
Chakra Microsoft Edge 舊版(已停止開發) 不再維護

測試結果可在 test262.report 實時查看,該網站匯總了各引擎對 ECMAScript 規範官方測試套件的執行情況。

參考文獻[編輯]

外部連結[編輯]

腳本錯誤:沒有「Portal」這個模塊。

腳本錯誤:沒有「Navbox」這個模塊。 腳本錯誤:沒有「Navbox」這個模塊。 腳本錯誤:沒有「Navbox」這個模塊。 Template:JavaScript 腳本錯誤:沒有「Navbox」這個模塊。