跳至內容

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]

參考文獻