解析let和const声明的变量不在window下的原因

解析let和const声明的变量不在window下的原因

使用es5中 var 命令声明的变量可以在 window 下找到,比如:

var myName = 'mason' ,可以使用 window.myName 访问到。

但是使用es6的 letconst 声明的变量却没有在window下,这是为什么呢?


这里就要说到window对象和 global 对象。

对于window和global的看法,之前一直都是:window是浏览器的顶层对象,global是node的顶层对象。

但是其实window是global在浏览器的代理,window是global的一部分。
我们使用var声明的变量会被挂载到window下。

而let和const声明的变量会被挂载到 script 对象下,script和global是同一层级的。

script对象

评论