根据节点documentation,顶级作用域不是全局作用域,并且在Node.js模块中定义的变量将位于该模块的本地。
但是,我注意到在全局范围内创建的var something
被列为global
的属性,在我看来,这是一种跨模块对象。
这是我在GitBash中运行的代码:
$ node
var something = "this is a test"
undefined
something
'this is a test'
console.log(global)
我真的不明白这与顶级示波器文档中所说的相符。
如果global
确实是一个跨模块对象,就像Ebohlman对this old question的回答所暗示的那样,那么var something
并不是它定义在其中的模块的本地。
有人可以帮助我阐明这件事吗? var something
是否真的是模块范围的? global
与JavaScript中的window
有何不同?它的目的是什么?
答案 0 :(得分:0)
您在REPL中运行了代码,这意味着您在运行node
之后键入的所有代码都在同一作用域内,这与声明和运行多个模块不同,因此您无需重现错误,我们可以在这里提供帮助。