ES6頂層物件(window)和global物件

2021-09-10 13:38:52 字數 692 閱讀 8407

es5只有兩種宣告變數的方法:使用var命令和function命令。es6除了新增了let和const命令,還有import命令和class命令,所以一共有6種宣告變數的方法。

一、頂層物件的屬性
頂層物件在瀏覽器環境中指的是window物件,在node環境中指的是global物件。在es5中頂層物件的屬性與全域性變數是等價的。

window.a = 1;

a//1

a = 2;

window.a//2

解析:上面**中頂層物件的屬性賦值與全域性變數的賦值是同一件事。

es6為改變這點,一方面規定,為了保持相容性,var命令和function命令宣告的全域性變數依舊是頂層物件的屬性;另一方面規定,let命令、class命令宣告的全域性變數不屬於頂層物件的屬性。也就是說,從es6開始,全域性變數將逐步與頂層物件的屬性隔離。

let b = 1;

window.b//undefined

//即用let宣告變數,就不再是頂層物件的屬性,返回undefined

二、global物件
1、es5的頂層物件本身就是乙個問題,因為它在各種實現中都是不統一的。

2、同一段**為了能夠在各種環境中都取到頂層物件,目前一般是使用this變數,但是也有侷限性

ES6學習(頂層物件的屬性)

頂層物件,在瀏覽器環境指的是window物件,在 node 指的是global物件。es5 之中,頂層物件的屬性與全域性變數是等價的。es5中 global.a 1 console.log a 1 a 2 console.log global.a 2es6 為了改變這一點,一方面規定,為了保持相容性...

ES6 陣列和物件

先列乙個要學習內容的大綱,慢慢補齊。es5 中新增的方法 forwhile arr.foreach 迴圈遍歷陣列中的每一位 arr.map 迴圈遍歷陣列中的每一位,並返回乙個新陣列 arr.filter 迴圈遍歷陣列中的每一位,並過濾一些不合要求的元素。arr.some 查詢陣列中符合條件的元素,返...

es5建立物件和es6的Class

es5建立物件的方式 有工廠模式,建構函式模式,原型模式和 組合使用建構函式模式 原型模式 最常使用的模式是 組合使用 建構函式模式 原型模式,這樣的好處是,每個例項可以保持獨特的例項屬性,也可以共有原型方法 function person name,age person.prototype.say...