如果你打开chrome devtool并输入以下内容:
// The iife is irrelevant
let r = (() => { return 2; })();
然后评估 r
你会看到。
r
2
但是 window.r
和 globalThis.r
双双返回 undefined
. 我知道 let
是块范围的,但哪里是 r
父对象?我在哪个区块,在devtool中,我可以访问 r
但它不在任何全局对象上?
抱歉,我在用手机,所以无法验证。但我很确定有一个 "范围 "标签作为开发工具的一部分。如果你在调试,我很确定你可以看到当前范围内的变量。但它在普通的控制台中是不可用的。
https:/developers.google.comwebtoolschrome-devtoolsjavascript#scope
编辑,刚刚重新看了你的问题,这个并没有回答你的问题描述,但也算是回答了你的问题标题。所以可能要把答案留在这里,供以后参考。
代码是在全局范围内评估的,Globally声明的变量 "let"(在任何函数之外)有Global Scope。