全局variables作用域在Node.js控制台中无法识别

所以在浏览器(铬),如果我在js控制台运行这个代码,函数调用foo(); 打印到控制台的数字2.但是,如果我在node.js中运行它,函数调用foo()打印未定义 。 这是为什么? 节点是否以“严格模式”自动运行代码?

function foo() { console.log(this.a); } var a = 2; foo(); 

正如文件中所提到的那样

在一个Node.js模块中的var的东西将是本地模块。

所以,这将是不同的。

你也可以尝试:

 function foo() { console.log(this.a); } global.a = 2; foo();