/* 在ES5中,顶层对象的属性和全局变量是等价的,var命令和function命令声明的全局变量,自然也 是顶层对象 */ var a = 12; function func(){}; console.log(window.a); console.log(window.func); /* 但ES6规定,var命令和function命令声明的全局变量,依旧是顶层对象, 而let和const、class命令声明的全局变量,不属于顶层对象的属性; ES6中,let和const声明的变量,会在独立的作用域内。无法通过window调用获取。 */ // var a = 1; // window.a 1 let aa = 11; // window.aa undefined const aaa = 111; // window.aaa undefined