頂層物件,在瀏覽器環境指的是window物件,在 node 指的是global物件。es5 之中,頂層物件的屬性與全域性變數是等價的。
es5中:
global.a =1;
console.
log(a)
;// 1
a =2
;console.
log(global.a)
;// 2
es6 為了改變這一點,一方面規定,為了保持相容性,var命令和function命令宣告的全域性變數,依舊是頂層物件的屬性;另一方面規定,let命令、const命令、class命令宣告的全域性變數,不屬於頂層物件的屬性。也就是說,從 es6 開始,全域性變數將逐步與頂層物件的屬性脫鉤。
//2、
var a =1;
// 如果在 node 的 repl 環境,可以寫成 global.a;如果在 window 的 環境,可以寫成 window.a;
// 或者採用通用方法,寫成 this.a
console.
log(global.a)
;// undefined
let b =1;
console.
log(global.b)
;// undefined
上面**中,全域性變數a由var命令宣告,全域性變數b由let命令宣告,所以它不是頂層物件的屬性,返回undefined。 ES6學習 物件屬性的遍歷
es6一共有5種方法可以遍歷物件的屬性。1 for.in for.in迴圈遍歷物件自身的和繼承的可列舉屬性 不含symbol屬性 2 object.keys obj object.keys返回乙個陣列,包括物件自身的 不含繼承的 所有可列舉屬性 不含symbol屬性 3 object.getownp...
ES6頂層物件(window)和global物件
es5只有兩種宣告變數的方法 使用var命令和function命令。es6除了新增了let和const命令,還有import命令和class命令,所以一共有6種宣告變數的方法。一 頂層物件的屬性頂層物件在瀏覽器環境中指的是window物件,在node環境中指的是global物件。在es5中頂層物件的...
ES6 學習 Promise物件
1.promise含義 可以將promise物件看成是乙個容器,它儲存著未來才會結束的某個事件 一般是非同步操作事件 的結果,各 種非同步操作都可以用promise物件來處理 promise的特點 1 promise物件有三個狀態 pending 進行中 fulfilled 已成功 和rejecte...