在Chrome浏览器中使用本机模块时(模块是script
且type
设置为module
的模块),我发现了一个奇怪的现象。具有以下代码:
var a = 1;
let b = 2;
const c = 3;
debugger;
console.log(a, b, c);
在本地范围内没有变量,但是很显然,在控制台中记录的变量有{a
,b
和c
)。
有趣的是,添加使用顶级变量的函数会使它们出现在“作用域”面板中:
var a = 1;
let b = 2;
const c = 3;
debugger;
function f() {
console.log(a, b, c);
}
f();
为什么会这样?