Gau*_*ary 3 javascript ecmascript-6 babeljs
有人可以解释这种行为吗?此代码段输出Window
(()=>{
console.log(this);
})()
Run Code Online (Sandbox Code Playgroud)
但它使用babel的编译输出是
"use strict";
(function () {
console.log(undefined);
})();
Run Code Online (Sandbox Code Playgroud)
这个输出 undefined
如果babel只是编译,那么在两种情况下输出都不应该相同吗?为什么this翻译成undefinedbabel输出?
Babel假设您的输入代码是一个模块,并且模块以严格模式解释.因此,上面的代码粘贴到浏览器的开发者控制台时相当于:
(function() {
"use strict";
(()=>{
console.log(this);
})();
})();
Run Code Online (Sandbox Code Playgroud)
哪个打印undefined.