跳到正文

ECMAScript

申请更正

商标

未认领

作为JavaScript及跨浏览器和其他运行时实现基础的标准化规范。

最近更新 2026年10月7日

AI 爬虫读取

暂未记录到 AI 爬虫读取这个词条。

概览

ECMAScript是JavaScript的标准化语言规范,旨在使实现能够在各种Web浏览器和其他执行环境中互操作。该规范由Ecma International通过第39技术委员会(通常称为TC39)维护。其主要语言定义以ECMA-262发布,而相关的Ecma标准则定义了国际化API、JSON语法和源映射格式。 该语言起源于Netscape,Brendan Eich开发了一种浏览器脚本语言,先后命名为Mocha和LiveScript,之后以JavaScript的名称推向市场。JavaScript这一名称反映了Netscape与Sun Microsystems之间的商业关系,尽管该语言与Java并不相同。微软开发了兼容的实现,称为JScript,而对跨浏览器兼容性的需求推动了正式标准化。1996年,Netscape宣布与Ecma International合作,ECMA-262第一版于1997年6月获得批准。ECMAScript成为标准化语言的折中名称,因为JavaScript与Netscape和Sun的商标以及浏览器供应商之间的竞争利益相关联。 ECMAScript定义了核心语言行为,而非完整的应用平台。它规定了语法、值、对象、函数、控制结构、模块、错误处理、国际化相关集成以及内置设施,如Array、Function、Promise、Map、Set和globalThis。它本身不定义网络、持久存储、图形或通用输入/输出。这些能力由宿主环境提供,包括浏览器API和服务器端运行时,如Node.js、Deno和Bun。 该语言结合了结构化和命令式编程,具有动态和弱类型、一等函数、闭包以及基于原型的对象行为。早期版本严重依赖函数作用域的var声明;ECMAScript 2015引入了let和const用于块级作用域,同时引入了类、模块、Promise、迭代器、生成器和其他重大改进。自2015版以来,TC39通常通过分阶段的提案流程在每年6月最终确定新版本。提案从早期调查推进到可实施的Stage 4状态,需经过委员会审查和共识。 ECMAScript主要通过JavaScript实现使用。它支持客户端Web应用、浏览器工具、桌面和移动应用框架、命令行程序、服务器应用、自动化以及日益增长的分布式和云服务。开发人员经常使用转译器和polyfill来使较新的语言特性适应较旧的环境。一致性通过Test262进行评估,这是一个由TC39参与者和成员组织开发的大型开放测试套件。该规范仍然是JavaScript生态系统的活跃基础,而非传统的商业产品、公司或独立运营的软件平台。

沿革

ECMAScript源自Brendan Eich在Netscape创建的浏览器脚本语言。该语言最初称为Mocha,后改为LiveScript,之后在1995年12月由Netscape和Sun Microsystems以JavaScript的名称推广。尽管JavaScript与Java有一些营销关联,但它是一种专为Web浏览器脚本设计的独立语言。 浏览器脚本的快速增长产生了兼容性问题。Netscape有其JavaScript实现,而微软为Internet Explorer开发了JScript。它们的相似性使跨浏览器编程成为可能,但行为差异使可移植性变得困难。因此,Netscape在1996年宣布将通过Ecma International进行标准化。这项工作由第39技术委员会(现称为TC39)进行。ECMAScript一词被选为中立的标准化名称,考虑到Netscape、Sun和微软的商业和商标问题。 ECMA-262第一版于1997年6月由Ecma大会批准。后续版本完善了语言并添加了功能,同时保持与现有JavaScript程序的兼容性。该规范涵盖了语言的语法和语义、内置对象、函数、执行模型以及其他核心行为。它不规定网络、文件、图形、浏览器文档或持久存储所需的宿主API。这些设施由ECMAScript实现运行的环境定义。 第六版于2015年发布,通常称为ECMAScript 2015或ES6,是一次重大扩展。它添加了通过let和const的块级作用域声明、类、模块、Promise、迭代器、生成器、符号、模板字面量、解构以及许多其他功能。在此版本之后,ECMAScript转向定期年度发布周期,提案通过TC39的分阶段流程开发。提案通常从早期探索推进到Stage 4,此时规范文本和实现证据被认为足以纳入标准版本。 随着JavaScript运行时在服务器和其他计算环境中变得普遍,生态系统扩展到浏览器之外。Node.js、Deno和Bun是实现了ECMAScript并添加自身输入/输出和系统API的运行时示例。开发工作流也采用了转译,允许将较新的源代码语法转换为旧引擎,以及polyfill,在运行时提供缺失的功能。这些工具帮助在新版本逐步采用期间保持兼容性。 Ecma International围绕核心语言维护了几个标准。ECMA-402定义了国际化API,包括用于区域敏感格式化和相关操作的Intl设施。ECMA-404定义了JSON语法,一种源自JavaScript表示法的语言无关数据交换格式。ECMA-426定义了源映射格式,用于将生成或转换的代码关联到其原始源。TC39还协调Test262,一个包含ECMAScript版本要求的测试的一致性套件。总之,规范、相关标准、测试、浏览器引擎和非浏览器运行时构成了现代JavaScript生态系统的技术基础。

  • 2024

    Source Map格式标准化为ECMA-426

    [1]

    Ecma发布了源映射格式作为标准,用于将转换后的代码映射回原始源文件。

  • 2015

    ECMAScript 2015引入主要语言特性

    [1]

    第六版添加了主要功能,包括块级作用域、类、模块、Promise、迭代器、生成器、符号和模板字面量。

  • 2010

    Ecma开始开发ECMAScript一致性测试

    [1]

    Ecma International开始开发测试标准和套件,以评估实现遵循ECMA-262的程度。

  • 1997

    ECMA-262第一版通过

    [1]

    ECMAScript语言规范的第一版由Ecma大会批准。

  • 1996

    通过Ecma International启动标准化工作

    [1]

    Netscape宣布与Ecma International合作,推进JavaScript的通用标准。

  • 1995

    JavaScript发布

    [1]

    Netscape和Sun Microsystems在JavaScript以Mocha和LiveScript等早期名称开发后,公开宣布了JavaScript。

产品与定位

一种开放的、与实现无关的语言标准,为跨浏览器、服务器和其他运行时的JavaScript提供共同的行为基础。

  • 编程语言标准 · 1997

    ECMAScript语言规范

    作为ECMA-262发布,这是ECMAScript的核心规范。它定义了语言的语法、语义、执行行为、内置对象、函数、运算符、控制结构、模块和其他基本设施。它由浏览器中的JavaScript引擎和独立运行时实现。该标准有意将许多系统能力(包括网络、存储、图形和文件访问)留给宿主环境。

  • 国际化标准

    ECMAScript国际化API

    ECMA-402通过国际化应用程序的API补充了ECMA-262。其设施支持区域敏感操作,如格式化数字、日期、列表和文本,使JavaScript程序能够适应不同的语言和区域惯例。

  • 数据格式标准

    JSON数据交换语法

    ECMA-404规定了JSON,一种源自JavaScript表示法的人类可读数据交换语法。JSON被设计为独立于任何编程语言,广泛用于应用程序和服务之间交换结构化数据。

  • 开发者工具标准 · 2024

    Source Map格式

    ECMA-426定义了源映射格式,将生成或转换的代码与其原始源文件连接起来。这允许调试工具在程序被转译、打包或压缩时显示原始源位置。

  • 一致性测试套件 · 2010

    Test262

    Test262是一个一致性套件,用于根据语言规范中的要求评估ECMAScript实现。它由TC39社区开发,测试由Ecma成员组织和其他参与者贡献。

品牌决策

  • 2015

    采用ECMAScript 2015作为重大语言代际更新换代

    背景

    该语言需要大幅现代化,同时保持与大量现有JavaScript程序和引擎的兼容性。

    采取的行动

    第六版引入了块级作用域、类、模块、Promise、迭代器、生成器、符号、模板字面量、解构和其他语言特性。

    后续影响

    ECMAScript进入定期年度发布周期,转译器和polyfill被广泛使用以支持新特性的逐步采用。

  • 1996

    推动JavaScript走向中立国际标准化战略

    背景

    浏览器供应商产生了相关但不完全相同的脚本实现,造成互操作性问题和商业紧张。

    采取的行动

    Netscape宣布与Ecma International及其技术委员会合作,定义标准化语言规范。

    后续影响

    该过程产生了ECMA-262,并确立了ECMAScript作为标准化语言的中立名称,而JavaScript仍然是主要的实现和生态系统名称。

    • Microsoft — 微软参与了更广泛的浏览器标准化背景,并拥有自己的兼容JScript实现。

来源2 个来源

引用本词条: 请引用规范词条页。 /brand-wiki/javascript · 编辑方针 · 词条如何编纂