ES6 聲明變量的6種方法


  ES5 只有兩種聲明變量的方法:var命令和function命令。

  ES6除了添加letconst命令,后面章節還會提到,另外兩種聲明變量的方法:import命令和class命令。所以,ES6 一共有 6種  聲明變量的方法。

  頂層對象,在瀏覽器環境指的是window對象,在Node指的是global對象。ES5之中,頂層對象的屬性與全局變量是等價的。  

window.a = 1;
a // 1

a = 2;
window.a // 2

 

  頂層對象的屬性與全局變量掛鈎,被認為是JavaScript語言最大的設計敗筆之一。

 

  ES6為了改變這一點,一方面規定,為了保持兼容性,var命令和function命令聲明的全局變量,依舊是 頂層對象 的屬性;另一方面規定,let命令、const命令、class命令聲明的全局變量,不屬於頂層對象 的屬性。也就是說,從ES6開始,全局變量將逐步與頂層對象的屬性脫鈎。 

 

var a = 1;
// 如果在Node的REPL環境,可以寫成global.a
// 或者采用通用方法,寫成this.a
window.a // 1

let b = 1;
window.b // undefined

 

  上面代碼中,全局變量avar命令聲明,所以它是頂層對象的屬性;全局變量blet命令聲明,所以它不是頂層對象的屬性,返回undefined

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM