我在编码时错过了var
声明。我安装了preset-0
和transform-runtime
。控制台显示以下错误:
key is not defined
这是我正在运行的代码:
let set = new WeakSet();
key = {}; // missing var
set.add(key);
console.log(set.has(key));
但是当我添加var
关键字时,一切都很好:
let set = new WeakSet();
var key = {}; // added var
set.add(key);
console.log(set.has(key));
控制台输出:
true
这意味着我无法随意使用babel创建全局变量?
答案 0 :(得分:3)
不是那样你不能。
您始终可以从任何文件为select t1.name
from trips t1
inner join types t2 on t1.type =t2.type
分配变量,并从应用中的任何其他文件中访问此值。但这不是在您的应用中全局共享数据的最佳方式。
最好的方法是创建一个文件,比如MyFile.js
window.MyKey = whateverValue
现在,您可以在应用中的任何位置请求此文件,并访问MyFile的同一实例。所以,
randomFile.js
class MyFile {
constructor() {
this.MyKey = 10;
}
}
export default (new MyFile);
这种方法可以避免污染全局范围,但您可以完成相同的功能。