当前位置: 首页 > 编程日记 > 正文

ecmascript_TC39及其对ECMAScript的贡献

ecmascript

by Parth Shandilya

通过Parth Shandilya

TC39及其对ECMAScript的贡献 (TC39 and its contributions to ECMAScript)

Many people get confused about what is JavaScript and what is ECMAScript. Sometimes it’s hard to tell how they are connected with each other and what role ECMA International and TC39 play in the standardization of JavaScript.

许多人对什么是JavaScript和什么ECMAScript感到困惑。 有时很难说出它们如何相互连接以及ECMA International和TC39在JavaScript标准化中起什么作用。

In this blog post, I am going to discuss TC39 and its contributions to ECMAScript.

在这篇博客中,我将讨论TC39及其对ECMAScript的贡献。

Let’s start with all the basic terminologies used when talking about JavaScript and ECMAScript.

让我们从谈论JavaScript和ECMAScript时使用的所有基本术语开始。

什么是ECMAScript? (What is ECMAScript?)

ECMAScript is a standard script language, developed with the cooperation of Netscape and Microsoft and mainly derived from Netscape’s JavaScript. JavaScript is a widely-used scripting language that is used in Web pages to affect how they look or behave for the user.

ECMAScript是一种标准脚本语言,由Netscape和Microsoft合作开发,主要源自NetscapeJavaScript。 JavaScript是一种广泛使用的脚本语言,在Web页中使用它来影响它们对用户的外观或行为。

ECMA-262 is a standard published by ECMA International. It contains the specification for a general purpose scripting language which is known as ECMAScript.

ECMA-262是ECMA International发布的标准。 它包含用于通用脚本语言的规范,该规范称为ECMAScript。

有关JavaScript的更多信息 (A bit more about JavaScript)

JavaScript is a scripting language that enables you to create dynamically updating content, to control multimedia, to animate images, and to do pretty much everything else. (Okay, not everything, but it is amazing what you can achieve with a few lines of JavaScript code.)

JavaScript是一种脚本语言,使您能够创建动态更新的内容,控制多媒体,为图像设置动画以及执行几乎所有其他操作。 (好的,不是所有的东西,但是用几行JavaScript代码就能达到的效果令人惊讶。)

什么是ECMA? (What is ECMA?)

ECMA is a standards organization for information and communication systems. ECMA aims to develop standards and technical reports to facilitate and standardize the use of information communication technology and consumer electronics. It encourages the correct use of standards by influencing the environment in which they are applied, and it publishes these standards and reports in electronic and printed form.

ECMA是信息和通信系统的标准组织。 ECMA旨在制定标准和技术报告,以促进和标准化信息通信技术和消费电子产品的使用。 它通过影响标准的应用环境来鼓励正确使用标准,并以电子和印刷形式发布这些标准和报告。

And now, let’s introduce the hard working people behind ECMAScript: TC39.

现在,让我们介绍ECMAScript背后的努力者:TC39。

什么是TC 39? (What is TC 39?)

TC39 means Technical Committee number 39. It is part of ECMA, the institution which standardizes the JavaScript language under the “ECMAScript” specification. It works on the standardization of the general purpose, cross platform, vendor-neutral programming language that is ECMAScript. This includes the language syntax, semantics, libraries, and complementary technologies that support the language.

TC39表示技术委员会编号39。它是ECMA的一部分,ECMA是根据“ ECMAScript”规范对JavaScript语言进行标准化的机构。 它适用于通用,跨平台,与供应商无关的编程语言(即ECMAScript)的标准化。 这包括语言语法,语义,库以及支持该语言的补充技术。

TC 39致力于(TC 39 works on:)

  • Maintaining and updating the standard for the ECMAScript programming language.

    维护和更新ECMAScript编程语言的标准。
  • Identifying, developing and maintaining standards for libraries that extend the capabilities of ECMAScript.

    识别,开发和维护用于扩展ECMAScript功能的库的标准。
  • Developing test suites that may be used to verify correct implementation of these standards.

    开发可用于验证这些标准是否正确实施的测试套件。
  • Contributing with selected standards to the ISO/IEC JTC 1 committee.

    向ISO / IEC JTC 1委员会贡献选定的标准。

  • Evaluating and considering proposals for complementary or additional technologies.

    评估并考虑有关补充或附加技术的建议。

Since ES6 came out, TC 39 streamlined the proposal previsioning process to meet modern expectations. The new process uses a superset of HTML to format the proposals. They use GitHub pull requests, which helped boost participation from the community. The number of proposals being made also increased.

自ES6发布以来,TC 39简化了提案预定义流程,以满足现代期望。 新流程使用HTML的超集来格式化建议。 他们使用GitHub拉取请求,这有助于提高社区的参与度。 提出的提案数量也有所增加。

The specification is now more of a living standard, meaning that proposals see adoption faster, and we don’t spend years waiting for a new edition of the specification to come out.

现在,该规范已成为生活水平的标准 ,这意味着提案可以更快地通过,并且我们无需花很多时间等待规范的新版本发布。

更一般的看法 (A more general view)

By reading the ECMAScript specification, you learn how to create a scripting language. By reading the JavaScript documentation, you learn how to use that scripting language.

通过阅读ECMAScript规范 ,您将学习如何创建 一种脚本语言。 通过阅读JavaScript文档 ,您将学习如何使用该脚本语言。

提案处理 (Proposal Processing)

阶段0:稻草人 (Stage 0: Strawman)

Any discussion, idea, change, or addition which has not yet been submitted as a formal proposal is considered to be a “strawman” proposal at this stage. Only members of TC39 can create these proposals, and there’s over a dozen active strawman proposals today.

在此阶段,尚未提交的任何讨论,想法,变更或补充都被视为“稻草人”建议。 只有TC39的成员才能创建这些建议,并且今天有十几个活跃的稻草人建议。

阶段1:提案 (Stage 1: Proposal)

At this stage, a proposal is formalized and expected to address cross-cutting concerns, interactions with other proposals, and implementation concerns. Proposals in this stage identify a discrete problem and offer a concrete solution to that problem.

在此阶段,提案已正式确定,有望解决跨领域关注,与其他提案的交互以及实施关注。 在此阶段的提案确定了一个离散的问题,并为该问题提供了具体的解决方案。

At this stage, proposal often includes a high level API description, usage examples, and a discussion of internal semantics and algorithms. These proposals are likely to change significantly as they make their way through the process.

在此阶段,建议通常包括高级API描述,用法示例以及内部语义和算法的讨论。 这些建议在整个过程中可能会发生重大变化。

阶段2:草稿 (Stage 2: Draft)

Proposals in this stage should offer an initial draft of the specification.

此阶段的提案应提供规范的初稿。

At this point, it’s reasonable for implementers to begin experimenting with actual implementations in runtime. The implementation could come in many forms: a polyfill, user code that mangles the runtime into adhering to the proposal, an engine implementation (which natively provides support for the proposal), or it could be support by a build-time compiler like Babel.

在这一点上,实现者开始在运行时中尝试实际的实现是合理的。 该实现可以有多种形式:polyfill,使运行时修改为遵守提案的用户代码,引擎实现(本机为提案提供支持),或者由Babel等构建时编译器提供支持。

第三阶段:候选人 (Stage 3: Candidate)

Proposals in this stage are candidate recommendations. At this advanced stage, the specification editor and designated reviewers must have signed off on the final specification. A Stage 3 proposal is unlikely to change beyond fixes to issues identified in the wild.

此阶段的建议是候选建议。 在此高级阶段,规范编辑者和指定的审阅者必须已经签署了最终规范。 第3阶段的提案除了解决野外发现的问题之外,不太可能改变。

Implementers should have expressed interest in the proposal as well — a proposal without support from implementers is dead in the water. In practice, proposals move to this level with at least one browser implementation, a high-fidelity polyfill, or when supported by a build-time transpiler like Babel.

实施者也应该对该提案表示兴趣-没有实施者支持的提案已经死了。 实际上,使用至少一个浏览器实现,高保真的polyfill或在像Babel这样的编译时编译器的支持下,投标书可以提高到这一水平。

阶段4:完成 (Stage 4: Finished)

Finally, proposals get to this stage when there are at least two independent implementations that pass acceptance tests.

最后,当至少有两个独立的实现通过验收测试时,建议才进入此阶段。

下一步是什么? (What’s Next?)

Proposals that make their way through to stage 4 will be included in the next revision of ECMAScript. When the spec goes through its yearly ratification as a standard, the proposal is ratified as part of it.

进入第4阶段的提案将包含在ECMAScript的下一个修订版中。 当规范通过其年度批准作为标准时,该提案将作为其一部分被批准。

This is how ideas for evolving the ECMAScript language are accepted and added to next revision of ECMAScript. And we are all thankful for the work done by TC39, which is invaluable.

这就是如何接受有关发展ECMAScript语言的想法并将其添加到ECMAScript的下一版本中的方法。 我们都感谢TC39所做的工作,这是无价的。

With that, we have reached the end of our discussion on TC39 and its contributions to ECMAScript.

这样,我们就结束了关于TC39及其对ECMAScript的贡献的讨论。

Thanks for reading.

谢谢阅读。

Sources: TC 39 Process, ECMA International

资料来源: TC 39流程 , ECMA国际组织

翻译自: https://www.freecodecamp.org/news/tc39-and-its-contributions-to-ecmascript-c178b77f32e1/

ecmascript

相关文章:

Winio驱动在64位windows下无法使用的解决方法

C#在使用WinIo的驱动开发类似按键精灵一类工具的时候,需要对相关的驱动进行注册才能正常启动,找了下资料,资料来自: http://jingyan.baidu.com/article/642c9d34e55bd9644b46f74e.html 我在这里进行转载: Winio驱动在6…

js获取前后几天或者前后几个月的日期

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 ; 正文: demo: 1.获取前后几天的日期 // pages/test/test.jsPage({onLoad: function (options) {var day -7;console.log(GetDay(day))}, }) function GetDay(day) {var tim…

nodejs安装、配置及开发工具

学了node一段时间,但是node的安装还是有一点迷糊。今天新换电脑,所以,需要从头开始,发现node的安装还是不顺畅,这篇随笔是之前学的时候写,但是今天再打开看的时候,发现其他好像没有什么内容&…

拨测工具_您可以拨多少钱? 快速简单地介绍有用的工具。

拨测工具by Miguel Bustamante通过Miguel Bustamante 您可以卷曲多少? 快速简单地介绍有用的工具。 (How much can you cURL? A quick and easy intro to a useful tool.) On a good day I can flex a 20 lb weight…twice. Probably. But that’s not the type o…

leetcode第一刷_Recover Binary Search Tree

这是一道好题,思路尽管有,可是提交之后总是有数据过不了,又依照数据改改改。最后代码都没法看了。收到的教训是假设必须为自己的代码加上非常多非常多特殊的限定。来过一些特殊的数据的话。说明代码本身有非常大的漏洞。 这道题,我…

Java中的文件路径

通常情况下,在Java项目中,我们使用的路径都是在拿到类加载路径后,根据相对位置,使用 FilePathTest.class.getResourceAsStream(relativePath);拿到文件。今天小生不使用classPath,而是直接去使用相对路径来…

js上传文件,上传表单demo 包含后端php

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><title>Title</title><script src"https://ajax.as…

如何在Tensorflow.js中处理MNIST图像数据

by Kevin Scott凯文斯科特(Kevin Scott) 如何在Tensorflow.js中处理MNIST图像数据 (How to deal with MNIST image data in Tensorflow.js) There’s the joke that 80 percent of data science is cleaning the data and 20 percent is complaining about cleaning the data …

常用图像额文件格式及类型

1、显示一幅二值图像&#xff1a; >> bw zeros(90,90); >> bw(2:2:88,2:2:88) 1; >> imshow(bw); >> 2、利用image函数显示一幅索引图像&#xff1a; >> [X,MAP] imread(E:\STUDY_software\Matlab2016\images\11.jpg); >> image(X); &…

微信小程序实现滑动翻页效果源码附效果图

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 微信小程序实现滑动翻页效果 效果图&#xff1a; 源码&#xff1a; <view class"mainFrame"><swiper class"container" indicator-dots"{{indic…

Ubuntu 系统 文件操作命令

文件和目录的操作 用户主目录下有一个 Desktop (对应,桌面)mkdir dir1 建立一个目录cd 不添加参数,默认回到主目录(用户目录)touch a.txt 建立一个文件mv a.txt Desktop/ 移动到Desktop/中 mkdir dir1cp -r dir1/ dir2 不加-r或者&#xff0d;R的时候&#xff0c;只拷贝文件&am…

firebase 推送_如何使用Firebase向Web应用程序添加推送通知?

firebase 推送by Leonardo Cardoso由莱昂纳多卡多佐(Leonardo Cardoso) 如何使用Firebase向Web应用程序添加推送通知&#xff1f; (How to add push notifications to a web app with Firebase ??) As web applications evolve, it is increasingly common to come across f…

lucene构建同义词分词器

lucene4.0版本号以后 已经用TokenStreamComponents 代替了TokenStream流。里面包含了filter和tokenizer 在较复杂的lucene搜索业务场景下&#xff0c;直接网上下载一个作为项目的分词器&#xff0c;是不够的。那么怎么去评定一个中文分词器的好与差&#xff1a;一般来讲。有两个…

正则匹配出字符串中两串固定字符区间的所有字符

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 效果&#xff1a;匹配两个字符串区间的字符串 代码&#xff1a; var dd[];var str is_img"https://www.baidu.com/"is_img11is_img"https://www.baidu.com/"is…

识别手写字体app_我如何构建手写识别器并将其运送到App Store

识别手写字体app从构建卷积神经网络到将OCR部署到iOS (From constructing a Convolutional Neural Network to deploying an OCR to iOS) 项目动机✍️?? (The Motivation for the Project ✍️ ??) While I was learning how to create deep learning models for the MNIS…

20155307 2016-2017-2 《Java程序设计》第10周学习总结

20155307 2016-2017-2 《Java程序设计》第10周学习总结 教材学习内容总结 网络编程&#xff1a;就是在两个或两个以上的设备(例如计算机)之间传输数据。程序员所作的事情就是把数据发送到指定的位置&#xff0c;或者接收到指定的数据。在发送和接收数据时&#xff0c;大部分的程…

WinForm 实现验证码

private void CheckIdentifyingCode() { Random r new Random(); string str ""; for (int i 0; i < 5; i) { int a r.Next(0, 10); str a;//将数字连接到一块 } Bitmap bm new Bitmap(150, 90);//创建位图对象 Graphics g Graphics.FromImage(bm);//在bm中…

微信小程序打开预览下载的文件

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 使用 wx.openDocument(obj) 方法预览 wx.downloadFile({url: http://example.com/somefile.pdf,success: function (res) {var filePath res.tempFilePathwx.openDocument({filePath: filePath,success…

aws lambda_为什么我会自动删除所有旧的推文以及我用来执行此操作的AWS Lambda函数...

aws lambdaFrom now on, my tweets are ephemeral. Here’s why I’m deleting all my old tweets, and the AWS Lambda function I’m using to do all this for free.从现在开始&#xff0c;我的推文只是短暂的。 这就是为什么我删除所有旧的推文&#xff0c;以及免费使用所有…

Topcoder SRM 657DIV2

前言: 像我这样一直在DIV2的弱菜。。不知道说什么了。 A:一定判断有8个‘R’&#xff0c;每行 每列只有一个 B题&#xff1a;大概是 int E,int EM,int M,int MH,int H 然后EM可以给值到E&#xff0c;M&#xff0c;MH可以给值到H&#xff0c;M&#xff1b; 我的做法二分&#x…

微信小程序换行,空格的写法

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 1.文本超出部分自动换行&#xff0c;前后对比 实现代码&#xff1a; flex-wrap: warp;white-space: pre-wrap; 2.text 手动添加换行的写法 { text: 12测试换\n行符&#xff0c;测试\…

我是如何在尼日利亚的沃里创立Google Developers Group GDG分会的,并达到了100位成员...

It only takes a spark to get a fire going, and soon all those around can warm up in its glowing. — Kurt Kaiser, Pass It On只需要一点火花就能使火熄灭&#xff0c;周围的所有人很快就会在炽热的火焰中升温。 — Kurt Kaiser&#xff0c;传递下去 I am convinced beyo…

ES6 你可能不知道的事 – 基础篇

ES6 你可能不知道的事 – 基础篇 转载作者&#xff1a;淘宝前端团队&#xff08;FED&#xff09;- 化辰 链接&#xff1a;taobaofed.org/blog/2016/07/22/es6-basics/ 序 ES6&#xff0c;或许应该叫 ES2015&#xff08;2015 年 6 月正式发布&#xff09;&#xff0c;对于大多数…

Android线程之主线程向子线程发送消息

和大家一起探讨Android线程已经有些日子了&#xff0c;谈的最多的就是如何把子线程中的数据发送给主线程进行处理&#xff0c;进行UI界面的更新&#xff0c;为什么要这样&#xff0c;请查阅之前的随笔。本篇我们就来讨论一下关于主线程向子线程如何发送数据&#xff0c;这个用的…

HTML上传excel文件,php解析逐条打印输出

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; phpExcel文件下载 ←跳转地址 demo <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><title>Title</title>…

javascript编写_如何通过编写自己的Web开发框架来提高JavaScript技能

javascript编写Have you ever asked yourself how a framework works?您是否曾经问过自己框架是如何工作的&#xff1f; When I discovered AngularJS after learning jQuery many years ago, AngularJS seemed like dark magic to me.多年前学习jQuery后&#xff0c;当我发现…

2016ACM/ICPC亚洲区大连站现场赛题解报告(转)

http://blog.csdn.net/queuelovestack/article/details/53055418 下午重现了一下大连赛区的比赛,感觉有点神奇,重现时居然改了现场赛的数据范围,原本过的人数比较多的题结果重现过的变少了,而原本现场赛全场过的人最少的题重现做出的人反而多了一堆,不过还是不影响最水的6题,然…

微信小程序插件新增能力

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; “ 小程序插件能力升级&#xff1a;开放插件登录能力&#xff0c;帮助插件开发者更好地管理用户&#xff1b;支持在插件内使用微信支付能力&#xff0c;便于用户在插件内完成预订、购…

ubutun:从共享文件夹拷贝文件尽量使用cp命令而不是CTRL+C/V

为了方便&#xff0c;VBOX安装的Ubuntu&#xff0c;并在硬盘上创建了一个与Windows的共享文件夹sharefolder方便在两个系统之间传文件 但是经常发现的问题就是从sharefolder中拷贝文件到ubuntu中会出现很多毛病&#xff0c;比如说经常按了CTRLC之后没有拷贝最新的文件&#xff…

影像锐化工具_如何以及为什么要进行工具改造:花在锐化斧头上的时间永远不会浪费...

影像锐化工具by Harshdeep S Jawanda通过Harshdeep S Jawanda 如何以及为什么要进行工具改造&#xff1a;花在锐化斧头上的时间永远不会浪费 (How and why you should tool-up: time spent sharpening your axe is never wasted) There is this old anecdote about two friend…