ES5 i ES6 są to wersje skryptowego języka programowania ECMAScript. Główną wadą wersji ES6 (standard od 2015) jest częściowe wsparcie dla współczesnych przeglądarek. Tylko z tego powodu większość osób decyduje się pisać kod z pełni kompatybilną wersją, jaką jest ES5 (standard od 2009). Istnieje konwerter Babel, który przetłumaczy wersję ES6 do ES5, jednak nie potrafi stworzyć w pełni kompatybilnego kodu. Sam ECMAScript 6 zawiera bardzo wiele unowocześnień pozwalające pisać bardziej wydajny i zoptymalizowany kod.
Najważniejsze różnica między ES6, a ES5:
Funkcje strzałkowe w ECMAScript 6 są bardziej czytelne i prostsze w użyciu
// ECMAScript 6
odds = evens.map(v => v + 1)
// ECMAScript 5
odds = evens.map(function (v) { return v + 1; });
ES6 umożliwia deklarowanie zmiennych blokowych (let) i stałych (const)
for (let a = 0; a < 10; a++) { b += a; }
const PI = 3.141593
Używając ES5 trudniej stworzyć klasę
// ECMAScript 6
class Shape { constructro (a,b,c) {
// ECMAScript 5
var Shape = function(a,b,c) {
Strick Mode
Używając wersji ES5, opcjonalne jest włączania Strick Mode. ES6 natomiast wymusza włączenie Strick Mode dla wielu funkcjonalność.