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是开源的吗? - 掘金
- ↑ 死磕前端之 —— 规范、语言、引擎、运行时 - 掘金