用 const 和 let 声明的变量, 不会存在 Windows 对象中
大家都知道在全局作用域中用 var 声明的变量, 保存在 Windows 对象中
但是用 ES6 的 const 或者 let 在全局作用域中声明的变量, 却不在 Windows 对象中
那这个全局变量 abcd 被保存在哪里呢? 经过我的寻找, 终于在函数的内部属性 [[Scopes]] 中找到了, 如下图
如上图, 在全局变量中用 const 声明的变量在函数 noop 中可以正常访问, 没有问题. 我用 dir 方法打印出函数 noop 的属性, 最后在 [[Scopes]] 属性内找到了消失的全局变量 abcd.
完.
关注下面的标签, 发现更多相似文章
ECMAScript 6
安装掘金浏览器插件
来源: https://juejin.im/post/5c0be11b6fb9a049df23e388