ECMAScript

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

ECMAScript je skriptovací jazyk normovaný neziskovou organizací ECMA International podle specifikace ISO/IEC 16262:2011. Tento jazyk je využíván především na webových stránkách pro vytváření skriptů na straně klienta. Nyní jsou využívány především jeho implementace jako např. JavaScript, JScript a ActionScript.

Historie

JavaScript byl původně vyvinut Brendanem Eichem ze společnosti Netscape a byl pojmenován Mocha, později LiveScript a nakonec JavaScript, jak jej známe dnes. V prosinci 1995, Sun Microsystems a Netscape oznámily oficiální vydání JavaScriptu a v březnu 1996 byl vydán webový prohlížeč Netscape Navigator 2. +more0, který JavaScript plně podporoval.

Vzhledem k velkému úspěchu JavaScriptu reagoval Microsoft vydáním kompatibilního jazyka jménem JScript. Byly přidány metody, které opravily tzv. +more Y2K problém (neboli problém s interpretací data, počínaje rokem 2000) a vycházely ze třídy Java Date. JScript byl plně podporován prohlížečem Internet Explorer 3. 0, který byl vydán v srpnu 1996.

Microsoft následně dodal JScript společnosti ECMA International pro standardizaci a vytvoření specifikace ECMA-262, která začala v listopadu 1996. První verze ECMA-262 byla přijata na valném shromáždění společnosti ECMA v červnu 1997 a od té doby bylo vydáno několik dalších verzí.

V červnu 2004 publikovala Ecma International standard ECMA-357 definující rozšíření E4X (ECMAScript for XML) a ES-CP (Compact Profile pro ES, ECMA-327), které byly v roce 2015 zrušeny, protože nevyhovovaly verzi ES6.

Verze

VerzeDatum vydáníZměny oproti předchozí verziEditor
1Červen 1997První verze+more'>Guy L. Steele, Jr.
2Červen 1998Pouze menší změny, které umožnily udržet specifikaci plně v normách ISO/IEC 16262Mike Cowlishaw
3Prosinec 1999Přidány regulární výrazy, zlepšená práce s řetězci, nová kontrola deklarací, try/catch výjimky, přísnější definice syntaktických chyb, formátování pro číselné výstupy a další změny. Mike Cowlishaw
4NevydánaOd čtvrté edice bylo upuštěno, kvůli neshodám ohledně složitosti jazyka. Mnoho nových funkcí bylo kvůli tomu odebráno. Některé z nich jsou navržené pro zahrnutí do nové verze "Harmony".
5Prosinec 2009Byl přidán tzv. "strict mode", funkce, která umožnila přísnější a účinnější detekci chyb. Tím bylo možné se vyvarovat chyb po překladu. Dále se zde objevily definice nových programátorských postupů, jako např. "getters" a "setters", což jsou typické konstrukty například objektového jazyka Java, nebo C++. Pratap Lakshman, Allen Wirfs-Brock
5. 1Červen 2011Tato edice 5. 1 ECMAScript Standard funguje přesně dle mezinárodního standardu ISO/IEC 16262:2011Pratap Lakshman, Allen Wirfs-Brock
6červen 2015Šestá edice přidává novou velmi významnou syntaxi pro psaní aplikací, která obsahuje třídy a moduly, jež jsou ale definovány sémanticky stejně jako v ECMAScript 5 strict mode. Mezi další nové funkce patří například iterátory, generátory výjimek a kolekce, což jsou opět velmi podobné, ne-li stejné funkce, jaké přináší moderní objektově orientované programovací jazyky Java, C++. Allen Wirfs-Brock
7červen 2016Sedmá edice oficiálně známá jako ECMAScript 2016 byla dokončena v červnu 2016.  Z nových funkčností obsahuje např. exponenciální operátor (**) a Array. prototype. includesBrian Terlson
8červen 2017Osmá edice, oficiálně známá jako ECMAScript 2017 byla dokončena v červnu 2017.  Nově obsahuje funkce async/await využívající generatory a promisy.
.

Syntaxe

Jak již bylo zmíněno, syntaxe ECMAScriptu je v mnohém podobná syntaxi programovacích jazyků Java nebo C++.

Příklad práce s for cyklem:

var search = function(a, x) { for(i = 0; i b.date ? -1 : 1); }).slice(0, 10);

Objekty mají prototypy:

function Car { } Car.prototype = new Object; Car.prototype.wheels = 4; Car.prototype.color = "black";

function RaceCar { } RaceCar.prototype = new Car; RaceCar.prototype.color = "red";

var vroom = new RaceCar; vroom.wheels // 4 vroom.color // "red"

Vlastnost prototype obsahuje odkaz na takzvaný objektový prototyp, datovou strukturu definující vlastnosti a objekty společné všem objektům vytvořeným stejným konstruktorem.

Pole:

var digits = [3, 1, 4, 1, 5, 9];

Objekty:

var img = { width: 320, height:160, src: "images/es.png" };

Regulární výrazy:

var email = /([^@]+)@([^@]+)/;

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top