全局作用域中,用const和let声明的变量去哪了?
大家都知道在全局作用域中用var声明的变量,保存在window对象中

但是用ES6的const或者let在全局作用域中声明的变量,却不在window对象中

那这个全局变量 abcd
被保存在哪里呢?经过我的寻找,终于在函数的内部属性 [[Scopes]]
中找到了,如下图

如上图,在全局变量中用 const
声明的变量在函数 noop
中可以正常访问,没有问题。我用 dir
方法打印出函数 noop
的属性,最后在 [[Scopes]]
属性内找到了消失的全局变量 abcd
。