1:顶层对象在浏览器环境中指的是window对象;在node环境中指的是global对象;
2:ES6一方面规定:为了保持兼容性,var命令function命令声明的全局变量依旧是顶层对象的属性;
另一方面也规定,let命令、const命令、class命令声明的全局变量不属于顶层对象的属性;从ES6开始,全局变量将逐步与顶层对象的属性隔离;
var a=1;
console.log(window.a) //1
let b=2
console.log(window.b) //undefined