let申明的全局变量是放哪里了?

看了阮一峰老师的博客上说 ES6 为了改变这一点,一方面规定,为了保持兼容性,var命令和function命令声明的全局变量,依旧是顶层对象的属性;另一方面规定,let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。也就是说,从 ES6 开始,全局变量将逐步与顶层对象的属性脱钩。
那问题来了不属于顶层对象的属性那属于谁?

阅读 3.3k
1 个回答

为什么非要属于谁呢?

如果函数里定义一个变量,这个变量属于函数吗?

function foo() {
    var a = 'bar';
    return a;
}

你能通过 foo.a 访问 a 的值吗?不能。

全局变量只是不再作为全局对象的属性而存在了,但是依然在全局作用域中

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题