-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
第十四届 D2 参会总结 #42
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
今年相比去年较为突出的改变是多了实时翻译环节,感谢宋离同学。
本次的议题围绕微前端和 Serverless 展开,而从个人发展和业务需求的角度,所以选择了以下议题(其他的后面看视频):
废话不多说,开始正文:
Let's work together on the future of JavaScript through TC39 - Daniel Ehrenberg / TC39 核心成员
本次议题主要介绍了 TC39 以及其工作流程,并对提案进行了详细介绍。
ECMA 为相关文档,不推荐从头阅读,选自己感兴趣的部分读一读。
TC39 是 ECMA 的一个工作组,ECMA 是国际标准化组织。TC39 会有定期会议,每两个月会开三天会,会议会讨论语言的更改,寻求共识。(而非投票制)
会议记录
提案共分为 4 个阶段,分别是 Stage-1,Stage-2,Stage-3,Stage-4,提案进入 Stage-4 后,会在下一个 ECMAScript 正式版中发布,如 ES2020 会发布目前处于 Stage-4 阶段的提案。
接着,littledan 介绍了一些新提案:
Stage-4
Stage-3
Stage-2
Stage-1
Stage-0
以上为各阶段的部分提案,具体提案可在各提案的文档中找到:
同时还可以在这些文档中还能找到会议有关的记录。
Babel: Under the Hood - Nicolò Ribaudo / Babel 核心贡献者
随着
webpack
,rollup
等打包工具的普及,现在的前端开发基本上都已离不开 Babel,我接触 Babel 是在 2017 年,那时将 Babel 英文文档翻译为了中文,也参与了新版 Babel 官网(v7)的建设工作。和 Nicolò 也在 Github 上有过互动,真是年轻有为的开发者。
Nicolò 在此次演讲中主要介绍了 Babel 的原理以及部分使用。基本上将 Babel 一些通用的功能做了介绍,很赞。
Babel 非传统的 Complier(编译器),而是个将 JavaScript 转为 JavaScript 的 Complier。
Babel 采用 AST 的形式(Abstract Syntax Tree,抽象语法树)对源代码进行处理。
正常来说,我们在开发时简单语法可以通过正则匹配的形式进行修改。
但是如果遇到复杂的情况,正则就无法胜任了。
因此采用 AST。
Babel 中不同的 package 完成不同的工作。
Nicolò 对于上述库做了介绍,并说明了使用方式。
各库的具体使用不做过多介绍,这里聊聊
traverse
。以代码
n => n * 2
举例,其 AST 结构为:在使用
@babel/traverse
转换 AST 时,大体如下:根据 AST 图示,然后与输出结果对比:
其中每个节点都包含
enter
和exit
:如果只需要
enter
,则可简化为:最后 Nicolò 讲解了如何编写 babel 插件,插件的编写过程请参考 babel-handbook 插件手册。
The text was updated successfully, but these errors were encountered: