在浏览器上,全局对象为select REPLACE(col, "\n", "\\n") from table
,在window object
中,全局对象为nodejs
。
当我在终端上使用global object
运行此代码时,我有了这个输出
nodejs
===>这返回错误
然后使用nodejs的交互模式
console.log(this === global)
>this === global
但在浏览器上,true
和console.log
都会返回this === window
有什么区别?
答案 0 :(得分:2)
我可以给你答案的一部分:
在浏览器中,顶级范围是全局范围。这意味着 在浏览器中,如果你在全局范围内var会定义一个 全局变量。在Node中,这是不同的。 顶级范围不是 全球范围; Node模块中的var将是本地的 那个模块。
https://nodejs.org/api/globals.html#globals_global
但我不知道为什么顶级范围是交互模式的全球范围。