Javascript Node.js控制台中无法识别全局变量范围
因此,在浏览器(chrome)中,如果我在js控制台中运行此代码,函数调用foo();将数字2打印到控制台。但是如果我在node.js中运行它,函数调用foo()会打印未定义的内容。为什么会这样?节点是否在“严格模式”下自动运行代码Javascript Node.js控制台中无法识别全局变量范围,javascript,node.js,scope,console,strict,Javascript,Node.js,Scope,Console,Strict,因此,在浏览器(chrome)中,如果我在js控制台中运行此代码,函数调用foo();将数字2打印到控制台。但是如果我在node.js中运行它,函数调用foo()会打印未定义的内容。为什么会这样?节点是否在“严格模式”下自动运行代码 function foo() { console.log(this.a); } var a = 2; foo(); 如报告中所述 var Node.js模块中的某些内容将位于该模块的本地 所以,情况会有所不同 您也可以尝试: functi
function foo() {
console.log(this.a);
}
var a = 2;
foo();
如报告中所述
var Node.js模块中的某些内容将位于该模块的本地
所以,情况会有所不同
您也可以尝试:
function foo() {
console.log(this.a);
}
global.a = 2;
foo();
我在Node.js REPL中尝试过,它确实打印了2Ah。在REPL中,它起作用了。但是,通过在终端上键入“node foo.js”来运行名为foo.js的代码文件会打印未定义的内容。想知道为什么会这样回答它。谢谢czheo!