es6與es5的區別

2022-08-18 00:03:08 字數 594 閱讀 7813

es5只有兩種宣告變數的方法:var命令和function命令。es6除了新增let和const命令,後面章節還會提到,另外兩種宣告變數的方法:import命令和class命令。所以,es6一共有6種宣告變數的方法。

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

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

上面**中,全域性變數a由var命令宣告,所以它是頂層物件的屬性;全域性變數b由let命令宣告,所以它不是頂層物件的屬性,返回undefined。

es5與es6的區別

es5和es6對於前端開發來說是經常都會使用的方法,他們為我們開發提供了很多便利的方法和寫法,使我們的 更加的優雅,作為乙個新人就讓我簡單總結一下es5與es6的不同。1.變數 首先在變數方面es6為我們提供了let和const這兩種新的宣告方法,let和const的出現大大的避免了變數汙染的問題,...

ES5與ES6繼承的區別

2.es6的繼承機制完全不同,實質上是先建立父類的例項物件this 所以必須先呼叫父類的super 方法 然後再用子類的建構函式修改this。3.es5的繼承時通過原型或建構函式機制來實現。4.es6通過class關鍵字定義類,裡面有構造方法,類之間通過extends關鍵字實現繼承。子類必須在con...

ES6 與 ES5 繼承的區別

es6 中有類 class 的概念,類 class 的繼承是通過 extends 來實現的,es5 中是通過設定建構函式的 prototype 屬性,來實現繼承的,es6 與 es5 的繼承有什麼區別呢?下面通過 3 個 demo,來分析它們之間的區別。1.es5 繼承 直接上 function a...