鍍金池/ 問答/HTML/ let申明的全局變量是放哪里了?

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

看了阮一峰老師的博客上說 ES6 為了改變這一點,一方面規(guī)定,為了保持兼容性,var命令和function命令聲明的全局變量,依舊是頂層對象的屬性;另一方面規(guī)定,let命令、const命令、class命令聲明的全局變量,不屬于頂層對象的屬性。也就是說,從 ES6 開始,全局變量將逐步與頂層對象的屬性脫鉤。
那問題來了不屬于頂層對象的屬性那屬于誰?

回答
編輯回答
爛人

為什么非要屬于誰呢?

如果函數(shù)里定義一個變量,這個變量屬于函數(shù)嗎?

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

你能通過 foo.a 訪問 a 的值嗎?不能。

全局變量只是不再作為全局對象的屬性而存在了,但是依然在全局作用域中。

2018年8月17日 00:00