我们知道,ES5里var关键字定义的变量,存储于window里,可以通过window.变量名来调用,同理我想到,let虽然不能通过window调用,也应该可以通过其他方式调用,查了资料得知,let定义的变量存储于名为Script的域里,那么想请问一下,为什么不可以通过Script.变量名调用呢,倒不如说,应该通过什么方式调用let定义的变量呢?(除了直接调用let变量本身外这个方法)
建议你好好了解下js的作用域以及es6扩充的块级作用域。es6之前,用var定义的变量只存在于其所在的作用域中,不一定是在window下面,也可能是在某个函数中,是否能读取到它,跟它所在的作用域相关,并且es6之前没有块级作用域的概念。es6的let跟const定义的变量,只能从其所在的块级作用域读取。当前能否读取到,可能还涉及到作用域链问题。