V8 / JS 运行时:JavaScript window 函数如何在没有前缀 "window" 的情况下可用

V8 / JS runtime: how are JavaScript window functions available without prefix "window"

我不太了解 JS 控制台,但我正在转向命令行编程,在我开始在国外使用 shell/node 之前了解我的本地环境会很好

我的猜测是所有命令行语句都被调用 with (window) eval(/* whatever user typed before hitting enter/*) 但这似乎是可怕的做法。如果我 console.log(this) 上下文肯定被绑定为 "Window" 但我不确定为什么/如何

这几乎就像用户 cd 进入 window 对象以将其设置为上下文

所有 JavaScript 都具有全局范围。在浏览器中,全局范围称为 "window",它是对 window 对象的引用。在node中叫做"global",指的是node中的全局JS命名空间。

浏览器中的 "window" 全局变量有很多属性。 "console" 或 "location" 之类的东西。当您想与这些代码片段对话时,您可以选择在调用前加上 "window."。示例:要将某些内容记录到控制台,您可以键入:

window.console.log("HELLO");

或者您可以将 "window." 关闭,例如:

console.log("HELLO");

浏览器中的全局 "window" 对象是页面上唯一的可选对象。任何时候你看到一个未使用 "var"(或 E​​S6 中的 "let" 和 "const")声明的变量的引用,这意味着该变量只是一个 属性在全局对象上。