JavaScript
JavaScript(通常縮寫為JS)是一種基於原型、多範式的動態腳本語言,其核心語法與結構遵循ECMAScript標準。該語言最初由布蘭登·艾奇(Brendan Eich)於1995年在網景通信公司(Netscape Communications)設計實現,旨在為網頁提供動態交互能力,後隨全球資訊網的發展成為世界上使用最廣泛的通用程式語言之一[1]。JavaScript與ECMAScript的關係為:ECMAScript是由Ecma國際組織制定的語言規範標準,JavaScript是該規範最主要的實現與方言[2]。除瀏覽器環境外,JavaScript亦通過Node.js等平台廣泛應用於伺服器端與嵌入式系統開發[3]。
| JavaScript | |
|---|---|
| 中文名 | JavaScript |
| 英文名 | JavaScript |
| 別名 | JS、ECMAScript(規範名) |
| 設計者 | 布蘭登·艾奇(Brendan Eich) |
| 發行時間 | 1995年12月 |
| 開發公司 | 網景通信公司(Netscape) |
| 標準化組織 | Ecma國際(Ecma International) |
| 標準編號 | ECMA-262 / ISO/IEC 16262 |
| 最新標準 | ECMAScript 2024(第15版) |
| 編程範式 | 多範式(事件驅動、函數式、面向對象) |
| 運行環境 | 瀏覽器、Node.js、嵌入式系統等 |
歷史
誕生與早期發展
1995年5月,網景通信公司聘請布蘭登·艾奇開發一種用於網頁的輕量級腳本語言,以便為非專業程式設計師提供一種簡單工具來增強網頁交互性[4]。該語言最初內部代號為Mocha,隨後更名為LiveScript。同年12月,網景與Sun Microsystems聯合宣布將其正式命名為JavaScript,並作為網景Navigator 2.0瀏覽器的腳本功能發布[1]。此舉主要是出於市場考量,借當時Java語言的知名度進行推廣,儘管兩者在技術層面並無直接繼承關係。
1996年,微軟在Internet Explorer 3.0中引入了與之功能相近的JScript,推動了瀏覽器腳本能力的普及,同時也引發了早期瀏覽器兼容性問題[1]。
標準化進程
1996年11月,網景宣布已將JavaScript提交至Ecma國際(前身為歐洲計算機製造商協會)進行標準化。Ecma隨即成立了技術委員會TC39負責制定語言規範[1]。1997年6月,Ecma大會正式通過第一版ECMA-262標準,該標準被提交至ISO/IEC JTC 1快速通道程序,並於1998年4月獲批為國際標準ISO/IEC 16262[2]。
此後,ECMAScript標準經歷了多個重要版本:1999年12月發布的第三版引入了正則表達式、異常處理(try/catch)等關鍵特性,奠定了現代JavaScript的基礎[3]。2015年發布的第六版(ECMAScript 2015,又稱ES6)帶來了類、模塊、箭頭函數等重大語法更新。自2016年起,TC39改為每年發布一個新版本,以年份命名(如ES2016、ES2017等)[1]。2024年6月26日,第127屆Ecma大會批准了ECMAScript 2024(第15版),新增了ArrayBuffer調整大小、Promise.withResolvers、RegExp/v標誌等功能[5]。
語言特性
核心組成
從實現層面看,完整的JavaScript技術棧通常包含三個部分:ECMAScript(定義語法、類型、關鍵字、對象等語言核心)、文檔對象模型(DOM,提供操作網頁元素的API)以及瀏覽器對象模型(BOM,提供與瀏覽器交互的API)[6]。其中ECMAScript本身並不依賴於特定宿主環境,其規範未定義輸入輸出機制,需由宿主環境(如瀏覽器、Node.js)提供具體實現[1]。
JavaScript是一種動態類型語言,支持多種編程範式,包括面向對象(基於原型而非類)、函數式和事件驅動編程。其語法設計上借鑑了Java、C等語言,但更為寬鬆,採用原型鏈實現對象繼承,並內置了垃圾回收機制[3]。
執行環境
現代JavaScript引擎普遍採用即時編譯(JIT)技術以提升執行效率,將原始碼在運行時編譯為機器碼,而非傳統的逐行解釋執行[1]。主流引擎包括Google的V8(用於Chrome與Node.js)、Mozilla的SpiderMonkey(用於Firefox)、Apple的JavaScriptCore(用於Safari)等[7]。這些引擎均遵循ECMAScript標準實現語言核心功能,並各自擴展了宿主環境相關的API。
ECMAScript標準
ECMAScript是由Ecma國際組織通過TC39技術委員會制定和維護的國際標準,文檔編號為ECMA-262[2]。該標準定義了腳本語言的語法、類型、語句、關鍵字、保留字、操作符及對象等核心內容[1]。JavaScript與JScript(微軟實現)均被視為ECMAScript的方言或實現。TC39採用五階段流程(Stage 0至Stage 4)管理語言特性提案,只有達到Stage 4(即已有至少兩種兼容實現並通過驗收測試)的特性才會被納入年度發布版本[1]。
應用領域
JavaScript最初設計為Web瀏覽器的腳本語言,用於增強網頁交互性。隨著ECMAScript標準的演進和Node.js等運行時的出現,其應用範圍已擴展至伺服器端開發、桌面應用(如Electron)、移動應用、遊戲開發及物聯網嵌入式系統等領域[3]。此外,基於ECMAScript規範的其他實現還包括Adobe曾使用的ActionScript等[1]。
參考文獻
- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 ECMAScript Language (ECMA-262), including JavaScript - Library of Congress
- ↑ 2.0 2.1 2.2 ECMAScript® 2024 Language Specification - Ecma International
- ↑ 3.0 3.1 3.2 3.3 ECMAScript® 2024 Language Specification - TC39
- ↑ A brief history of JavaScript - Deno
- ↑ Ecma International approves new standards - Ecma International
- ↑ JavaScript是開源的嗎? - 掘金
- ↑ 死磕前端之 —— 規範、語言、引擎、運行時 - 掘金