【发布时间】:2015-11-16 14:27:23
【问题描述】:
在这个简单的 Babel (6.1.18) 示例中,babel --presets es2015 test.js 转换:
'use strict'; // enable strict mode
(function () {
const A = 3;
}());
到
'use strict' // enable strict mode
;
(function () {
var A = 3;
})();
这主要是出于好奇,但我有兴趣更好地理解原因:
- 第一行中分号的位置已移到单独的行中
- iife 的语法已从(function () {}()); 更改为(function () {})();
【问题讨论】:
-
它并不是真的决定转换这段代码,而它本来可以保持原样......它是 Babel 总是使用特定的语法来输出特定的结构。您的输入被解构为抽象语法树,然后重新组合成 Javascript 代码。这里的“汇编器”被硬编码为输出这些特定情况。就这样。你可能会问为什么它以这种特定的格式输出东西,但担心为什么把这个输入具体转换成这个输出是没有意义的。
标签: javascript ecmascript-6 babeljs