顶层对象global,window
node 环境下使用var声明变量不会成为global的属性
var a = 33
console.log(global.a);// undefined
如果要声明global的属性 直接不带var 声明变量
a = 33
console.log(global.a);// 33
浏览器环境下使用var声明变量会成为window的属性
var a = 33
console.log(window.a);// 33
两种情况下使用let 和const声明变量都不会成为全局对象的属性
注 在ES5中顶层对象是全局变量的宿主
在ES6中变将全局变量和顶层对象解耦了,
不过浏览器环境下通过var声明的全局变量还是属于顶层对象的。
但是通过let、const声明的全局变量不再属于顶层对象。