Node.js似乎使用不同的规则将变量附加到global
对象,无论这是在REPL还是在脚本中完成的。关于Node.js中的全局变量
$ node
> var a = 1;
undefined
> a
1
> global.a
1
> a === global.a
true
如图中REPL工作时,声明一个变量与上面var
创建与global
对象上该变量的名称的新属性。
然而,这似乎并没有在脚本的情况:
// test.js
var a = 1;
console.log(a);
console.log(global.a);
console.log(a === global.a);
让我们运行脚本:
$ node test.js
1
undefined
false
这究竟是为什么?
足够清楚,我使用。 –