ECMAScript
adding new functionalities

What is ECMA?

What is ECMAScript?

ECMAScript

  • Standard developed by ECMA International

ECMAScript

  • Standard developed by ECMA International
  • JavaScript, JScript and ActionScript

ECMAScript

  • Standard developed by ECMA International
  • JavaScript, JScript and ActionScript
  • First edition: ECMAScript 1 (1997); latest: ECMAScript 2019

ECMAScript

  • Standard developed by ECMA International
  • JavaScript, JScript and ActionScript
  • First edition: ECMAScript 1 (1997), latest ECMAScript 2019
  • ECMAScript 2019 (also known ES2019 or ES10) 

History

History

  • Netscape and Java

History

  • Netscape and Java
  • Brendan Eich

History

  • Netscape and Java
  • Brendan Eich
  • Mocha -> Livescript -> JavaScript

History

  • Netscape and Java
  • Brendan Eich
  • Mocha -> Livescript -> JavaScript
  • Microsoft and JScript

History

  • Netscape and Java
  • Brendan Eich
  • Mocha -> Livescript -> JavaScript
  • Microsoft and JScript
  • Netscape and ECMA

History

  • Netscape and Java
  • Brendan Eich
  • Mocha -> Livescript -> JavaScript
  • Microsoft and JScript
  • Netscape and ECMA
  • ECMAScript

ECMAScript Versions

  • ECMAScript 1 (first standard; 1997)

ECMAScript Versions

  • ECMAScript 1 (first standard; 1997)
  • ECMAScript 2 (editoral changes; 1998)

ECMAScript Versions

  • ECMAScript 1 (first standard; 1997)
  • ECMAScript 2 (editoral changes; 1998)
  • ECMAScript 3 (regular expressions, try catch; 1999)

ECMAScript Versions

  • ECMAScript 1 (first standard; 1997)
  • ECMAScript 2 (editoral changes; 1998)
  • ECMAScript 3 (regular expressions, try catch; 1999)
  • ECMAScript 4 (classes, modules, generators, destructuring; ----) 

ECMAScript Versions

  • ECMAScript 1 (first standard; 1997)
  • ECMAScript 2 (editoral changes; 1998)
  • ECMAScript 3 (regular expressions, try catch; 1999)
  • ECMAScript 4 (classes, modules, generators, destructuring; ----) 
  • ECMAScript 3.1 -> 5 (strict mode, JSON native support; 2009)

ECMAScript Versions

  • ECMAScript 1 (first standard; 1997)
  • ECMAScript 2 (editoral changes; 1998)
  • ECMAScript 3 (regular expressions, try catch; 1999)
  • ECMAScript 4 (classes, modules, generators, destructuring; ----) 
  • ECMAScript 3.1 -> 5 (strict mode, JSON native support; 2009)
  • ECMAScript 2015 [ES6 or ES2015] (classes, modules, arrow functions, const and let, promises; 2015)

ECMAScript Versions

  • ECMAScript 1 (first standard; 1997)
  • ECMAScript 2 (editoral changes; 1998)
  • ECMAScript 3 (regular expressions, try catch; 1999)
  • ECMAScript 4 (classes, modules, generators, destructuring; ----) 
  • ECMAScript 3.1 -> 5 (strict mode, JSON native support; 2009)
  • ECMAScript 2015 [ES6 or ES2015] (classes, modules, arrow functions, const and let, promises; 2015)
  • ECMAScript 2016 (Array.prototype.includes, exponentiation operator **; 2016)

ECMAScript Versions

  • ECMAScript 1 (first standard; 1997)
  • ECMAScript 2 (editoral changes; 1998)
  • ECMAScript 3 (regular expressions, try catch; 1999)
  • ECMAScript 4 (classes, modules, generators, destructuring; ----) 
  • ECMAScript 3.1 -> 5 (strict mode, JSON native support; 2009)
  • ECMAScript 2015 [ES6 or ES2015] (classes, modules, arrow functions, const and let, promises; 2015)
  • ECMAScript 2016 (Array.prototype.includes, exponentiation operator **; 2016)
  • ECMAScript 2017 (async/await; Object.values / entries; 2017)

ECMAScript Versions

  • ECMAScript 1 (first standard; 1997)
  • ECMAScript 2 (editoral changes; 1998)
  • ECMAScript 3 (regular expressions, try catch; 1999)
  • ECMAScript 4 (classes, modules, generators, destructuring; ----) 
  • ECMAScript 3.1 -> 5 (strict mode, JSON native support; 2009)
  • ECMAScript 2015 [ES6 or ES2015] (classes, modules, arrow functions, const and let, promises; 2015)
  • ECMAScript 2016 (Array.prototype.includes, exponentiation operator **; 2016)
  • ECMAScript 2017 (async/await; Object.values / entries; 2017)
  • ECMAScript 2018 (rest / spread object, async iteration; 2018)

ECMAScript Versions

  • ECMAScript 1 (first standard; 1997)
  • ECMAScript 2 (editoral changes; 1998)
  • ECMAScript 3 (regular expressions, try catch; 1999)
  • ECMAScript 4 (classes, modules, generators, destructuring; ----) 
  • ECMAScript 3.1 -> 5 (strict mode, JSON native support; 2009)
  • ECMAScript 2015 [ES6 or ES2015] (classes, modules, arrow functions, const and let, promises; 2015)
  • ECMAScript 2016 (Array.prototype.includes, exponentiation operator **; 2016)
  • ECMAScript 2017 (async/await; Object.values / entries; 2017)
  • ECMAScript 2018 (rest / spread object, async iteration; 2018)
  • ECMAScript 2019 (flat; 2019)

ECMAScript Versions

  • ECMAScript 1 (first standard; 1997)
  • ECMAScript 2 (editoral changes; 1998)
  • ECMAScript 3 (regular expressions, try catch; 1999)
  • ECMAScript 4 (classes, modules, generators, destructuring; ----) 
  • ECMAScript 3.1 -> 5 (strict mode, JSON native support; 2009)
  • ECMAScript 2015 [ES6 or ES2015] (classes, modules, arrow functions, const and let, promises; 2015)
  • ECMAScript 2016 (Array.prototype.includes, exponentiation operator **; 2016)
  • ECMAScript 2017 (async/await; Object.values / entries; 2017)
  • ECMAScript 2018 (rest / spread object, async iteration; 2018)
  • ECMAScript 2019 (flat; 2019)
  • ESNext

Who designs ECMAScript?

How ECMAScript is designed?

Stage 0 (Strawman)

Ideas from TC39 members or contributors

https://github.com/tc39/proposals/blob/master/stage-0-proposals.md

Stage 1 (Formal proposal)

Champion, describe feature, high level API

https://github.com/tc39/proposals/blob/master/stage-1-proposals.md

Stage 2 (Draft)

Initial spec text (can includes TODOs / placeholders)

https://github.com/tc39/proposals#stage-2

Stage 3 (Candidate)

Complete spec text, feedback

https://github.com/tc39/proposals#stage-3

Stage 4 (Finished)

Tests (must be passed), ready to include in the standard

https://github.com/tc39/proposals/blob/master/finished-proposals.md

Optional chaining (history)

Optional chaining (history)

Optional chaining (history)

Stage 0

Optional chaining (history)

Stage 1

Optional chaining (history)

Stage 2

Optional chaining (history)

Stage 3

Optional chaining (history)

Stage 4

deck

By ireczek92

deck

  • 160