节点js窗口对象

在浏览器上,全局对象是window object ,在nodejs ,全局对象是global object

当我运行这个代码在terminal上使用nodejs我有这个输出

console.log(this === global) ===>这个返回false

然后使用nodejs的交互模式

>this === global

true

但在浏览器上, console.logthis === window返回true

有什么不同?

我可以给你一个答案的一部分

在浏览器中,顶级范围是全局范围。 这意味着在浏览器中,如果你在全局范围内,var将会定义一个全局variables。 在Node中,这是不同的。 顶级范围不是全球范围 ; 在Node模块内的var内容将是该模块的本地内容。

https://nodejs.org/api/globals.html#globals_global

但是我不知道为什么顶级范围是交互模式下的全球范围。